                          R E L E A S E    N O T E S
                         ============================

                  QLogic 577xx/578xx 10GbE Diagnostic Tool -
                  eDiag for MS-Dos 6.22, UEFI 2.0 and Linux.

                    Copyright (c) 2015 QLogic Corporation
                             All rights reserved.

Version 7.13.5 (Aug 11, 2015)
=============================
Internal FW 7.12.30

Fixes:
------
 1. Problem:    CQ80673 MBI upgrade failure.

    Change:     Fixed the issue of erasing the previous update logs
                during PHY fw update.

    Introduced: 7.12.55.

    Relevance:  57xxx.

Version 7.13.4 (Aug 03, 2015)
=============================
Internal FW 7.13.2

Fixes:
------
 1. Problem:    CQ81020,CQ81166 NVM upgrade failure.

    Change:     Fixed memory overrun bug in the function
                common_nvm_fw_ver_string.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ81181 NPAR 1.5 SF iSCSI MAC should be x+1.

    Change:     Modified the code to accommodate the requested change.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.13.3 (July 30, 2015)
==============================
Internal FW 7.13.1

Fixes:
------
 1. Problem:    CQ81086 - option nicp1_5_mac doesn’t work with fmac on OEM
                specific platform. WWNN/PN is not populated correctly
                -Persists in Ver 7.13.2.

    Change:     Bug in populating mac.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ73645 - PCI error on a specific OEM platform - Persists
                in Ver 7.13.2 and 7.13.1.

    Change:     Add support for new PCI configuration for specific OEM.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.13.2 (July 29, 2015)
==============================
Internal FW 7.13.1

Fixes:
------
 1. Problem:    CQ80749 - NVM version information is not getting updated in
                VPD on OEM specific platform.

    Change:     New SS_VID is added to the VPD update.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ81086 - option nicp1_5_mac doesn’t work with fmac on OEM
                specific platform. WWNN/PN is not populated correctly.

    Change:     Bug in populating mac.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.13.1 (July 22, 2015)
==============================
Internal FW 7.13.1

Enhancements:
-------------
 1. Request:    CQ81059 - OEM specific request to support diffent Vendor ID.

Fixes:
------
 1. Problem:    CQ73645 - PCI error on a specific OEM platform - persists.

    Change:     Add support for new PCI configuration for specific OEM.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.13.00 (July 15, 2015)
===============================
Internal FW 7.13.00

Fixes:
------
 1. Problem:    CQ73645 - PCI error on a specific OEM platform.

    Change:     Add support for new PCI configuration for specific OEM.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ80542 - Warnings while compiling ledaig in RHEL6.6/7.1.

    Change:     Order of input objs were not correct in Makefile.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.12.76 (June 24, 2015)
===============================
Internal FW 7.12.30

Fixes:
------
 1. Problem:    CQ79317 - VPD product name can have the wrong size.

    Change:     Length wasn't updated after VPD write.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ80311 - Debug error is seen while upgrading the MBI image.

    Change:     Version string of MBA wasn't handled correctly.

    Introduced: Day 1.

    Relevance:  57xxx.

 3. Problem:    CQ80286 - nvm crc CFG_SHARED mismatch after MBI upgrade.

    Change:     Recalculate CFG_SHARED CRC after MBI version change.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.12.75 (June 04, 2015)
===============================
Internal FW 7.12.30

Fixes:
------
 1. Problem:    CQ79723 - "221:Failed to do GetDriverName" error reported when
                ediag is launched.

    Change:     Error notification was commented out.

    Introduced: 7.12.53.

    Relevance:  UEFI only.

Enhancements:
-------------
 1. Request:    CQ78900 - Add command line option -list to display devices.
                Usage: ./load.sh -list.

 2. Request:    Add support for BCM84858 PHY firmware upgrade.

 3. Request:    CQ79465 - UEFI driver new version scheme support.

Version 7.12.54 (May 13, 2015)
==============================
Internal FW 7.12.29

Enhancements:
-------------
 1. Request:    Add support for serial over USB.
                Usage: ./load.sh -no_pci -usb or ./load.sh -usb.

 2. Request:    Add option to dump MDUMP image from NVM.
                Usage: nvm dump -mdump <file name>.

 3. Request:    CQ79507 - Add command line option -pmac to get the
                base MAC address and exit program.
                Usage: ./load.sh -pmac.

Version 7.12.53 (May 05, 2015)
==============================
Internal FW 7.12.29

Fixes:
------
 1. Problem:    CQ75504 - Incorrect asymmetric flow-control behavior.
                1. When user requests to disable TX, the local-device needs to
                   advertise both PAUSE and ASM_DIR, but to avoid
                   transmitting pause frames. In the 578xx, it would ignore
                   the TX disable.
                2. When user advertises RX-only, ASM_DIR was advertised instead
                   of PAUSE/ASM_DIR.

    Change:     Fix all problems.

    Introduced: Day 1.

    Relevance:  Asymmetric Autoneg Flow-Control.

 2. Problem:    CQ77841 - Fail to force link speed other than 20G in KR2.

    Change:     Avoid applying KR2 workaround in this case.

    Introduced: Day 1.

    Relevance:  KR2.

 3. Problem:    CQ78847 - UEFI Ediag is not opening on some specific server.

    Change:     Changed order of ComponentName2 DriverName parsing method.
                First parsing method is according to RFC 4646.

    Introduced: Day 1.

    Relevance:  UEFI only, specific server.

Enhancements:
-------------
 1. Request:    Add support for BCM84858 10G-baseT PHY, as well as for its
                auto-detection when external PHY configured is BCM84833.

Version 7.12.52 (April 15, 2015)
================================
Internal FW 7.12.28

Fixes:
------
 1. Problem:    Fail to upgrade MDUMP stand-alone image.

    Change:     Fix validate_image_type to support MDUMP image.
                Fixed read location of MDUMP version.

    Introduced: 7.12.50.

    Relevance:  57xxx.

 2. Problem:    CQ79037 - nvm upgrade -mbi deletes MFW2 image.
                Board is no longer detected after power cycle.

    Change:     Fixed MBI image upgrade handle of same MFW2 version.
                In case of same MFW2 version, skip upgrade and continue
                without failure.

    Introduced: 7.12.51.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ78063 - Add nvm cfg option for specific OEM.

Version 7.12.51 (April 02, 2015)
================================
Internal FW 7.12.27

Enhancements:
-------------
 1. Request:    CQ76542 - Add support for upgrading MBI image which is a
                collection of several images that forms a single kit.
                Add CRC check on MBI image.
                Usage: nvm upgrade -mbi <mbi_image>.

Version 7.12.50 (March 12, 2015)
================================
Internal FW 7.12.27

Fixes:
------
 1. Problem:    CQ78153 - OEM adapter fails nictest D3 external loopback test.

    Change:     Disable LLDP packets before test and restore LLDP after test.

    Introduced: 7.12.3.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Add support for MCP crash dump, including:
                nvm upgrade MFW with MDUMP image.
                nvm upgrade for standalone MDUMP image.
                new nvm cfg option 242 - mcp crash dump trigger.

Version 7.12.27 (Feb 24, 2015)
==============================
Internal FW 7.12.27

Fixes:
------
 1. Problem:    CQ78030 - uefi ediag flavor unloads all QLogic EFI drivers.

    Change:     Unload only QLogic 10 Gigabit driver upon EFI ediag launch.

    Introduced: 7.12.2.

    Relevance:  57xxx.

 2. Problem:    CQ78088 - Upgrading iSCSI/FCoE creates additional CFG3 & CFG4
                images, when CFG_SHARED doesn't include nvm cfg option 236 -
                "Number of ISCSI/FCOE cfg images".

    Change:     Fixed check if CFG_SHARED includes nvm cfg option 236 -
                "Number of ISCSI/FCOE cfg images".
                Incase CFG_SHARED image doesn't include option 236 show warning
                and use default value.

    Introduced: 7.10.70.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Add two new nvm options:
                nvm cfg 240: On-Board sensor interface.
                nvm cfg 241: On-Board sensor address.

Version 7.12.26 (Feb 11, 2015)
==============================
Internal FW 7.12.26

Fixes:
------
 1. Problem:    CQ77801 - Upgrading MFW doesn't delete NIV images, if exist,
                on some OEM boards.

    Change:     Delete NIV images, if exist, on all OEM boards.

    Introduced: 7.12.4.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Set nvm cfg option "Force SF mode" to "Force SF", incase of
                obsolete value, upon upgrading to MFW 7.12.0 and above.

Version 7.12.25 (January 13, 2015)
==================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ77068 Cont.- Upgrade ISCSI image fails with error:
                "variable old_version was corrupted".

    Change:     Fixed memory overrun of ISCSI_BOOT version read from NVM, in
                common_nvm_fw_ver_string() function.

    Introduced: 7.12.1.

    Relevance:  57xxx.

 2. Problem:    Serial mode stability.

    Change:     Fixed identification and handling of no serial connection.
                Added delay between write and read to reduce errors.
                Improved timing and code optimizations.

    Introduced: Day one.

    Relevance:  57xxx.

Version 7.12.4 (December 18, 2014)
==================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    nvm cfg -dump shows wrong number of devices.
                nvm configuration was over-written due to nested call
                to "nvm cfg".

    Change:     Get manufacture kit version via the utility
                "get_formatted_val" instead of calling "nvm cfg".

    Introduced: 7.10.70.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Remove append CRC to "nvm dump" command.
                Do not reject FW components without appended CRC.

 2. Request:    Remove NIV/AFEX support.
                Delete NIV, NIVPROFILES images upon nvm upgrade
                MFW 7.12.0 and above.

Version 7.12.3 (December 10, 2014)
==================================
Internal FW 7.10.51

 1. Problem:    CQ77068 - Upgrade FCOE/ISCSI image fails with error:
                "manufacture data is used without being initialized", when
                image CFG_SHARED doesn't include nvm cfg option 236 -
                "Number of ISCSI/FCOE cfg images".

    Change:     Incase CFG_SHARED image doesn't include option 236 -
                "Number of ISCSI/FCOE cfg images", show warning and use default
                value.

    Introduced: 7.10.70.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Change 1G-SFP module detection by verifying that not only it is
                not compliant with 10G-Ethernet (EEPROM address 3[6:4] is
                cleared), but that also it is a 1G-Ethernet compliant
                (EEPROM address 6[7:0] is NOT zero). This change is done in
                order not to enforce 1G link speed for non-Ethernet 8GB SFP
                modules.

 2. Request:    Add nvm cfg option for specific OEM.

Version 7.12.2 (November 25, 2014)
==================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ76816 - lediag minor fix to README file.

    Change:     Updated README file for lediag.

    Introduced: 7.12.1

    Relevance:  Linux only.

 2. Problem:    CQ76772, CQ76806 - Upgrade iscsi boot firmware fails.

    Change:     Fixed memory overrun of version read from NVM, in
                common_nvm_fw_ver_string() function.

    Introduced: 7.12.1.

    Relevance:  DOS only.

 3. Problem:    CQ76785 - UEFI ediag does not unload efi driver.

    Change:     Fixed the UnloadBrcmDrv() function to unload QLogic or Broadcom
                EFI driver if exist.

    Introduced: 7.12.0.

    Relevance:  UEFI only.

Enhancements:
-------------
 1. Request:    Do not calculate CRC for BDN image.

 2. Request:    CQ76945, CQ76946 - nvm upgrade reject FW images without CRC.
                Use -F flag to force upgrade of FW images without CRC.

Version 7.12.1 (November 13, 2014)
==================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ76486 - ediag DOS fails to launch when BAR is 64-bit.

    Change:     Fixed function lm_get_bar_offset_direct() in DOS only,
                to show error message that DOS ediag doesn't support
                64-bit BAR address.

    Introduced: Day one.

    Relevance:  DOS only.

 2. Problem:    UEFI ediag shows devices not in the correct order.

    Change:     Fixed UEFI pci scanning to take into account the doamin
                when re-ordering devices.

    Introduced: Day one.

    Relevance:  UEFI only.

 3. Problem:    CQ74331 - "nvm dir" exit ubnormally on some UEFI IA64 systems.

    Change:     Fixed the function which parses the FW version read from NVM,
                common_nvm_fw_ver_string().
                Removed pointers manipulations.

    Introduced: Day one.

    Relevance:  UEFI IA64 specific OEM system.

 4. Problem:    Duplicate MAC addresses for different devices on some UEFI IA64
                systems.

    Change:     Added PCI domain as input argument to the function
                os_if_pci_uefi_update_handle().

    Introduced: Day one.

    Relevance:  UEFI IA64 specific OEM system.

 5. Problem:    CQ76640 - nvm cfg option #211 refers to BRCM.

    Change:     Re-branding to QLogic.

    Introduced: 7.12.0.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ76542 - Add CRC check during NVM image programing and
                NVM upgrade image components.

 2. Request:    Improve SYSOP -chkled option for checking LEDs.
                Added retry option, incase user did not check leds.

Version 7.12.0 (Oct 27, 2014)
=============================
Internal FW 7.10.51

Enhancements:
-------------
 1. Request:    CQ76134 - Modify option "-nicp1_5_mac" to include default WWN
                prefixes for options #136 (10:00) and #137 (20:00), if WWN
                prefixes are zero.

 2. Request:    CQ74867/CQ76289 - Add new nvm option 237 to control Post2
                coeff, IPreDriver and IFir in addition to the existing iDriver
                from option 212 for SFP ports.

Version 7.10.70 (Oct 14, 2014)
==============================
Internal FW 7.10.51

Enhancements:
-------------
 1. Request:    CQ74082 - Validate that MFW or BC exist in image prior
                to programing full image using "nvm prg 0 <image>".
                Verify that the image includes valid bootstrap values.

 2. Request:    CQ76149 - Add manufacture kit version and time stamp to nvm cfg
                options.
                Usage: nvm cfg 234=<manufacture kit version>.
                e.g. nvm cfg 234=07:00:00:00:00.
                nvm cfg 235=<manufacture timestamp>
                e.g. nvm cfg 235=10:12:14.

 3. Request:    CQ73670 - Add new nvram configuration option to decide
                the number of ISCSI / FCOE configuration images (2 or 4).
                Usage: nvm cfg 236=<0 {2} 1 {4}>.

Version 7.10.55 (September 16, 2014)
====================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ75340 Cont. - New format for serial number "-snq" should
                not program VPD V2, V4 fields.

    Change:     Do not attempt to set VPD V2, V4 fields upon using "-snq".

    Introduced: 7.10.54.

    Relevance:  Use of command line option "-snq".

 2. Problem:    When dumping m_pn, the branding output was not correct.

    Change:     Set correct branding check when dumping m_pn file.

    Introduced: 7.10.51.

    Relevance:  m_pn file.

Enhancements:
-------------
 1. Request:    CQ75630 - New sysop option to initialize NPAR1.5 MAC addresses
                during manufacture.
                Added new command line option -nicp1_5_mac which sets one MAC
                address per PF.
                Should use -num_mac 4 to set four MAC addresses per port.
                Usage: -nicp1_5_mac -num_mac 4.

Version 7.10.54 (August 26, 2014)
=================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ75271 - I_B_CFG3 and I_B_CFG4 is not getting created
                for a new board.

    Change:     Add new four part ID to the list which checks if device
                supports NPAR.

    Introduced: 7.10.50.

    Relevance:  New board supporting NPAR.

 2. Problem:    The command line "-snq -vpd" fails to write the mac address
                to VPD V4.

    Change:     Attempt to write to VPD V4 field only if VPD image exist.

    Introduced: 7.10.53.

    Relevance:  Use of "-snq -vpd" options.

 3. Problem:    The "device" display title "S.N." for part number is
                misleading.

    Change:     Changed the title from "S.N." to "P.N.".

    Introduced: Day 1.

    Relevance:  57xxx.

 4. Problem:    CQ75293 - Module PN version 2 is not honored when MFW of the
                T7.10a release is used.

    Change:     Fix MFW version check to include this release as well.

    Introduced: 7.10.35.

    Relevance:  SFP.

Enhancements:
-------------
 1. Request:    CQ75340 - New format for serial number should program
                VPD V2 with code date.

Version 7.10.53 (August 20, 2014)
=================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ74770 - On some UEFI systems, error message is seen upon
                launching UEFI ediag:
                "assertion "tmp != NULL" failed: file sys\open.c, line 171".
                Some EFI bios have environment size over 44K, which exceed
                EFI tool kit boundary of 4K, thus causing incorrect device
                mapping table.

    Change:     a) Increase the MAX_ENVIRONMENT_DATA to 64K in env.c file in
                folder \Tools\EFI_Toolkit_2.0\lib\libc\efi.
                b) Re-compile  \Tools\EFI_Toolkit_2.0\lib\libc\ using
                "nmake -f libc.mak all" for both x64 and ia64.
                c) Verify change env.obj in folders:
                \Tools\EFI_Toolkit_2.0\build\sal64\output\lib\libc\efi.
                \Tools\EFI_Toolkit_2.0\build\em64t\output\lib\libc\efi.

    Introduced: 7.10.50.

    Relevance:  UEFI flavor only.

 2. Problem:    CQ74383 - ediag launch shows "Field 232 doesnt exist",
                for board with nvm cfg option 128 "MF vendor device ID"
                set to 0x16ae, in MF mode.

    Change:     Fix chip list translation table from device ID 0x16ae to
                chip 57810.

    Introduced: 7.10.34.

    Relevance:  MF mode on boards witd MF device ID 0x16ae.

 3. Problem:    CQ75246 - MAC partition func FCoE MAC addresses and wwn mac
                addresses are programmed incorrectly using -nicp_mac option.

    Change:     Fix -nicp_mac option to use common_nvm_init_npar_mac_addr
                function, instead of setting iscsi mac addresses only.

    Introduced: Day 1.

    Relevance:  Use of -nicp_mac option.

Enhancements:
-------------
 1. Request:    CQ74411 - Enable options fnvm, raw, pwd for programming
                the nvram in user ediag, per OEM request.

 2. Request:    CQ75196 - Support new format for serial number.
                Added "-snq" command line option for new serial number format.

Version 7.10.52 (August 03, 2014)
=================================
Internal FW 7.10.51

Fixes:
------
 1. Problem:    CQ74871 - I_B_CFG3 and I_B_CFG4 is not getting created
                for a new board.

    Change:     Add new four part ID to the list which checks if device
                supports NPAR.

    Introduced: 7.10.50.

    Relevance:  New board supporting NPAR.

Enhancements:
-------------
 1. Request:    Add new option to nvm cfg 166 - 6(2P_01_SIG). Supported by
                MFW 7.10.54 and above.

Version 7.10.51 (July 20, 2014)
===============================
Internal FW 7.10.32

 1. Problem:    CQ73899 - No link on 1G-baseT ports.

    Change:     Set the PHY access mode even in case of LFA.

    Introduced: T7.4 (LFA).

    Relevance:  57800.

 2. Problem:    CQ74634 - Nictest fails at D05 Statistics Test, in UFP mode.

    Change:     Retry driver load in case of link down.

    Introduced: 7.10.50 (UFP mode).

    Relevance:  UFP mode enabled.

 3. Problem:    CQ74126 - Hidden devices when some functions with invalid
                VLAN ID in UFP mode.

    Change:     Allow invalid VLAN ID in EDIAG UFP mode only.

    Introduced: 7.10.50 (UFP mode).

    Relevance:  UFP mode enabled.

Enhancements:
-------------
 1. Request:    CQ73635 - Add support to new NVM CFG option
                for revision ID control.

 2. Request:    CQ74597 - Add support for branding check in SFP module
                verification (m_pn), and advance it's version number to 2.

Version 7.10.50 (May 18, 2014)
==============================
Internal FW 7.10.32

 1. Problem:    Storm Profiler - freq parameter dont work.

    Change:     Fixed Storm Profiler.

    Introduced: 7.10.31.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ73972 - New NVM CFG option for specific OEM.

Version 7.10.33 (April 29, 2014)
================================
Internal FW 7.10.30

 1. Problem:    CQ73021, CQ73575 I_B_CFG 3,4 and FEB_CFG3,4 blocks are not
                updated on specific board.

    Change:     Fixed wrong sub-device ID of specific board check.

    Introduced: 7.10.30.

    Relevance:  578xx specific board.

Version 7.10.32 (April 22, 2014)
================================
Internal FW 7.10.30

 1. Problem:    CQ73346 - No link on 578xx-KR port with swapped polarity lane
                (nvm option 135 is set).

    Change:     Set back polarity settings when phy is initialized in case it
                was run over by previous link owner.

    Introduced: T7.8c.

    Relevance:  578xx-KR.

 2. Problem:    CQ73518 - No link on 578xx-KR2 port.

    Change:     Apply CQ73346 changes to KR only.

    Introduced: 7.10.31.

    Relevance:  578xx-KR2.

Version 7.10.31 (April 16, 2014)
================================
Internal FW 7.10.30

 1. Problem:    CQ73208 - eDiag does not launch with invalid VLAN ID in
                UFP mode.

    Change:     Allow invalid VLAN ID in UFP mode.

    Introduced: 7.10.30.

    Relevance:  UFP - When getting invalid VLAN ID.

 2. Problem:    Storm Profiler - Worng histogram results.

    Change:     Fixed Storm Profiler.

    Introduced: Day one.

    Relevance:  57xxx.

 3. Problem:    CQ73346 - No link on 578xx-KR port with swapped polarity lane
                (nvm option 135 is set).

    Change:     Avoid clearing RX polarity setting in KR mode.

    Introduced: T7.8c.

    Relevance:  578xx-KR.

Version 7.10.30 (March 05, 2014)
================================
Internal FW 7.10.30

 1. Problem:    CQ72989 Cont.- Program I_B_CFG3,4 and FEB_CFG3,4 on specific
                OEM according to VID, SVID and SDID, instead of MF mode.

    Change:     In case of SVID and sub-system device ID of specific OEM
                program I_B_CFG3,4 and FEB_CFG3,4 during nvm upgrade.

    Introduced: Day one.

    Relevance:  57xxx.

 2. Problem:    CQ73049 - Nictest failed A12 NIG register test.

    Change:     Exclude NIG_REG_TSGEN_FREECOUNT Wide-Bus Read-Only register.

    Introduced: Day one.

    Relevance:  57xxx.

 3. Problem:    CQ73160 - SYSOP summary display of devices shows error message:
                "Invalid device number 3. Check configuration.".

    Change:     Fixed input arguments to function disp_dev_info() call
                at SYSOP summary display.

    Introduced: 7.10.5.

    Relevance:  SYSOP only.

Enhancements:
-------------
 1. Request:    CQ72681 - Add utility to validate NPAR1.5 block.
                Usage:  check_npar1_5
                Optional: -stride 8 or 16.

 2. Request:    CQ73021 - Add support for OEM specific board.

 3. Request:    CQ70400 - VPD V1 field should reflect EFI driver version.

 4. Request:    Added UFP/BD mode detection and support in LM.

Version 7.10.7 (February 13, 2014)
==================================
Internal FW 7.10.8

Fixes:
------
 1. Problem:    CQ72630 - "nvm dir" shows incorrect nvm content of specific OEM
                after switched to another 578x0 in system.

    Change:     Update environment variables before attempt to read specific
                nvm configuration added for specific OEM.

    Introduced: 7.10.5.

    Relevance:  Two 578xx boards in system.
                One of them of specific OEM.

 2. Problem:    "swap_ports_cfg" utility fails with unknown variable.

    Change:     Perform "nvm_load" into nvm_config at the beginning of
                "swap_ports_cfg" utility.

    Introduced: 7.10.5.

    Relevance:  57xxx.

 3. Problem:    CQ72989 - Program I_B_CFG3,4 and FEB_CFG3,4 on specific OEM
                according to SVID and device ID, instead of MF mode.

    Change:     Incase of SVID and device ID of specific OEM program I_B_CFG3,4
                and FEB_CFG3,4 during nvm upgrade.

    Introduced: Day one.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    Change "ee" read output format to hex.

 2. Request:    CQ72686 - Remove MAC address check when storing license key.

 3. Request:    CQ72924 - Add OEM specific nvm cfg option.
                Don't show description of non-applicable or ignored nvm cfg
                options.

Version 7.10.6 (January 29, 2014)
=================================
Internal FW 7.10.6

Fixes:
------
 1. Problem:    CQ72470 - ediag doesn't upgrade I_B_CFG3, I_B_CFG4 in new
                MF mode.

    Change:     upgrade I_B_CFG3, I_B_CFG4 in new MF mode.

    Introduced: 7.10.1.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ72374 - Remove nvm cfg option 114 from menu.

 2. Request:    Create empty NIC_PRTION image when upgrading to MFW 7.a.0 and
                above, for specific OEM.

Version 7.10.5 (January 08, 2014)
=================================
Internal FW 7.10.3

Fixes:
------
 1. Problem:    CQ72257 - lediag fails to load on 32-bit system with error
                message: "unknown symbol _udivdi3".

    Change:     Don't include lm_link_i2c_update() in lediag compilation since
                it includes 64-bit division.

    Introduced: 7.8.52.

    Relevance:  linux 32-bit system.

 2. Problem:    CQ72256 - lediag nictest A36 PGLUE_B register test fails after
                "rmmod bnx2x" with reset value different than expected in
                PGLUE_B_REG_TX_ERR_* registers.

    Change:     Exclude PGLUE_B_REG_TX_ERR_* registers from testing as these
                registers are not reset upon reset_chip and could include
                values different than reset value due to legitimate action
                by bnx2x driver.

    Introduced: Day One.

    Relevance:  577xx.

 3. Problem:    10M-FD was advertised in case 10M-HD was requested for
                BCM54618SE.

    Change:     Advertise 10M-FD only when it is requested.

    Introduced: 7.8.15.

    Relevance:  BCM54618SE.

 4. Problem:    CQ72188 - 578xx fails to link with KinnexA SFP+T (1GBT) module.
                This fix handles only the link issue, assuming the SFP EEPROM is
                accessible, which is another aspect of the problem, handled in
                MFW 7.10.04.

    Change:     Reset TX_EN when RJ45 SFP module is detected.

    Introduced: 7.8.4.

    Relevance:  SFP-RJ45 module.

Enhancements:
-------------
 1. Request:    CQ72287 - Add support for Luma SFP+ (1GBT RJ45) module.
                This module lacks the connector type, so added this unspecified
                type while checking if the module compliance with 10G Ethernet
                or not.

 2. Request:    CQ72297 - Add OEM specific NVM CFG option.

Version 7.10.4 (December 19, 2013)
==================================
Internal FW 7.10.3

Fixes:
------
 1. Problem:    Incorrect 8073 link partner detection for KR2 work-around.

    Change:     Fix 8073 detection.

    Introduced: 7.8.1.

    Relevance:  57840-KR2.

 2. Problem:    CQ72162 - 57711: PHY FW Upgrade on second Port fails.

    Change:     Set correct port number when detecting external PHY during
                external PHY FW upgrade.

    Introduced: 7.8.3. (CQ66761).

    Relevance:  57840-KR2.

 3. Problem:    L4 tests did not unload drivers upon exit due to link down
                failure.

    Change:     Unload drivers incase of link down failure.

    Introduced: Day One.

    Relevance:  57xxx.

 4. Problem:    CQ71806 Cont. - SYSOP summary shows total MACs and test
                duration of hidden devices.

    Change:     SYSOP summary should include only MACs and test duration
                of valid devices.

    Introduced: 7.10.2.

    Relevance:  SYSOP mode.

Enhancements:
-------------
 1. Request:    CQ71189 - Add new command "ee" to support external I2C NVRAM.

 2. Request:    Program iSCSI/FCoE boot cfg3 and cfg4 blocks for new MF modes.

 3. Request:    CQ71807 Cont. - Support upper/lower case with/without spaces
                in "-blast <text file>" input text file.

Version 7.10.3 (December 08, 2013)
==================================
Internal FW 7.10.3

Fixes:
------
 1. Problem:    CQ71806 Cont. - "nictest" results include test duration
                in eng. mode as well, thus break regression scripts
                that compare test results to expected results.
                "nictest" without any active test, shows incorrect total
                tests duration.

    Change:     1. Show test duration only in sysop mode.
                2. Added missing initialization of tests duration.

    Introduced: 7.10.2.

    Relevance:  577xx.

 2. Problem:    CQ72017 - MFW upgrade fails on 57712 board with 1Mbyte NVRAM,
                with ERROR: "not enough room in NVM".
                Function which calculates if there is enough room for shadow
                SWIM files, uses the image file size and doesn't take into
                account size increase due to image manipulations.

    Change:     Do not support shadow SWIM images if there is not enough room
                in NVRAM for image manipulation. Leave 2K bytes room for
                image size increase due to image manipulation.

    Introduced: Day 1.

    Relevance:  57xxx with NVRAM 1Mbyte.

Enhancements:
-------------
 1. Request:    CQ71806 Cont. - Add to SYSOP results the time duration of NVM
                programming.

 2. Request:    CQ71807 - Add new command line option "-blast <text file>" for
                running L4 performance test.
                Text file should include L4 performance test parameters:
                Rxd = 1
                Txd = 2
                Time = 30
                Threshold = 9.10.

 3. Request:    CQ71965 - Create a shorter L2 external loopback test for SYSOP.

Version 7.10.2 (November 21, 2013)
==================================
Internal FW 7.10.2

Fixes:
------
 1. Problem:    CQ71353 - KR device cannot get link on all 4 ports when
                connected to a 1G (54680E) IOM.

    Change:     Force CL48 sync_status LOW to prevent Warpcore from getting
                stuck in Cl73 parallel detect loop while link partner is sending
                CL37 pages on all lanes.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 2. Problem:    CQ68092 - Idle check fails on 57711E MF mode with the error:
                "NIG: interrupt 1 is active.Value is 0xC.".

    Change:     Show warning "NIG: Got packets w/o Outer-VLAN in MF mode"
                instead of error incase NIG_REG_NIG_INT_STS_1 bits 2,3 are on.

    Introduced: Day 1.

    Relevance:  57711E, MF mode.

Enhancements:
-------------
 1. Request:    CQ71806 - Add to "nictest" results the test duration and total
                test time to the test log when "-sysop" is enabled.

 2. Request:    CQ71883 - Support additional values for "-num_mac", number of
                MAC addresses per port.

Version 7.10.1 (November 07, 2013)
==================================
Internal FW 7.10.2

Fixes:
------
 1. Problem:    CQ71261 - "nvm upgrade -mfw1" command deletes swims.

    Change:     Removed options -mfw1, -mfw2 and -swimx.
                Users should use only the -mfw option for upgrading MFW image
                and SWIMs.

    Introduced: Day 1.

    Relevance:  577xx.

 2. Problem:    CQ70554/CQ71071 - Failed to acquire 1G link over CL37 against
                1Gb switch. This issue happens when the device is in KR mode,
                and the switch advertises only 1G link speed over CL37.

    Change:     To solve this, the auto-detect mode was enabled in the Warpcore
                allowing it to select the higher speed protocol between 10G-KR
                (over CL73), or go down to 1G over CL73 when there's
                indication for it.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 3. Problem:    CQ68627 - Incorrect port value is displayed for specific Passive
                DAC (Direct Attached Cable) with missing Passive indication in
                it's EEPROM.

    Change:     In case there's a DAC indication, but without neither Passive
                or Active indication (In SFP+ Cable Technology field), treat
                this cable as a Passive DAC.

    Introduced: Day 1.

    Relevance:  578xx-SFP.

 4. Problem:    CQ71570 - Link is reported to be up when SFP+ module is
                plugged in without cable. This occurs with specific module types
                which may generate temporary TX_FAULT indication.

    Change:     Avoid changing any link parameters when checking TX_FAULT
                indication when physical link is down.

    Introduced: 7.4.1.

    Relevance:  578xx-SFP.

Enhancements:
-------------
 1. Request:    Support new MF modes in NVRAM option, including new nvm cfg
                #230 extending options shown in nvm cfg #73.

 2. Request:    Create empty NIC_PRTION image when upgrading to MFW 7.a.0 and
                above, for specific OEM.

Version 7.8.54 (October 02, 2013)
===================================
Internal FW 7.8.52

Fixes:
------
 1. Problem:    CQ70945 - NVM programing of a file which was dumped in ATMEL
                fomrat, using "nvm dump -a" fails.

    Change:     Fixed the utility which strips padding to strip 16 bytes,
                in case of 16M size NVRAM.

    Introduced: Day 1.

    Relevance:  577xx.

 2. Problem:    CQ70882 - Nictest C10 "XGXS PRBS internal loopback" test fails
                with "MDIO lock timeout" after several iterations.

    Change:     Used "mcp halt" at the beginning of the test (and not right
                before the first use of wc_phy).

    Introduced: Day 1.

    Relevance:  577xx.

 3. Problem:    Halt test prints nothing when running infinitely.

    Change:     Print to log after each 100 iterations.

    Introduced: 7.8.50.

    Relevance:  577xx.

 4. Problem:    Unclear error message when parsing an invalid GRC dump.

    Change:     Added a clear error message when parsing an invalid GRC dump.

    Introduced: Day 1.

    Relevance:  577xx.

 5. Problem:    CQ69375 - Failure to update MFW when unknown image is loaded
                on NVM.

    Change:     Fix the check if there is enough room for new image to not
                exit with failure in case encounters an unknown image type.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.8.53 (September 10, 2013)
===================================
Internal FW 7.8.52

Fixes:
------
 1. Problem:    CQ69463 Cont.- Test summary at the end of -sysop mode, shows
                part number instead of serial number.

    Change:     Fixed sysop summary to include the serial number read from
                NVRAM configuration or VPD image (if exists).

    Introduced: 7.8.51.

    Relevance:  SYSOP mode.

 2. Problem:    CQ69462 Cont. - DbgBreakIfAll() message was not recorded into
                the log file.

    Change:     Added to DbgBreakIfAll() a call to record the message to log
                file, if log file is already opened.

    Introduced: Day 1.

    Relevance:  57xxx.

Version 7.8.52 (Aug 28, 2013)
=============================
Internal FW 7.8.50

Fixes:
------
 1. Problem:    CQ70555 - The -sn2 command line option should reject SN length
                not equal to 22 characters.

    Change:     Fixed the function which verifies serial number in format2,
                not to accept SN lengths shorter than 22. Longer lengths were
                already rejected.

    Introduced: 7.8.9.

    Relevance:  57xxx.

 2. Problem:    CQ70725 - "driver load" fails after hot-swap on specific board.

    Change:     Save and restore PCI configuration "device_control" register
                (0xb4) upon hot-swap.

    Introduced: Day One.

    Relevance:  57xxx.

Version 7.8.51 (Aug 08, 2013)
=============================
Internal FW 7.8.24

Fixes:
------
 1. Problem:    CQ69458 - halt_test syntax was wrong.

    Change:     Fixed script logics to receive two parameters: number of
                iterations and pcie speed.

    Introduced: 7.8.50.

    Relevance:  57xxx.

 2. Problem:    CQ70395 - Parity Errors during GRC Dump.

    Change:     Fixed logic when clearing the parity errors to update the
                mask after clearing the status.

    Introduced: 7.8.13.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ69193 - Support iSCSI persistent nvm image.

 2. Request:    CQ69713 - Add auto check of PCIe link width and link speed
                in -sysop mode.
                Usage: -pciechk <file name e.g. pcie.txt>.

 3. Request:    CQ69463 - Add test summary at the end of log in -sysop mode.

Version 7.8.50 (July 31, 2013)
==============================
Internal FW 7.8.24

Fixes:
------
 1. Problem:    CQ70321 - Fail to program MAC addresses in SYSOP mode using the
                command line options "-fmac with -num_mac 1".

    Change:     Fixed function tcl_al_get_fmac() in case of MAC address per port
                is equal to 1.
                Fixed the check if text file runs out of addresses to calculate
                the number of addresses required according to MAC addresses per
                port.

    Introduced: Day one.

    Relevance:  SYSOP mode.

 2. Problem:    CQ70342 - Ediag "nvm cfg" option 56 "Link speed" setting of 10M
                Half/Full show reverse display in "device" command 10FD/10HD.

    Change:     Fixed reversed definitions of PORT_FEATURE_LINK_SPEED_10M_HALF
                and PORT_FEATURE_LINK_SPEED_10M_FULL in dev_info.h file.

    Introduced: Day one.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ70378 - Upgrade OCNVM image upon MFW upgrade for specific OEM,
                according to NVM configuration subsystem vendor ID option.
                (Not according to PCI configuration space vendor ID,
                to avoid reboot during SYSOP process).

 2. Request:    CQ69458 - support halt test through serial. Test runs pcie prbs
                test and performs basic 'heart bit' that chip is alive.
                Usage: source halt_test.tcl;
                       halt_test <number of loop iterations> <pcie speed>

Version 7.8.16 (July 17, 2013)
==============================
Internal FW 7.8.24

Fixes:
------
 1. Problem:    Attempt to configure NVM on hidden device fails with error:
                "can't read "ChipIdToChipNum(0x0)": no such element in array".

    Change:     Don't attempt to convert chip id to chip number incase of hidden
                device (did 0).

    Introduced: Day one.

    Relevance:  578xx.

 2. Problem:    CQ70009 Nictest A36 PGLUE_B register test fails due to
                PGLUE_B_REG_INTERNAL_VFID_ENABLE_63_32_VALUE,
                PGLUE_B_REG_INTERNAL_VFID_ENABLE_127_96_VALUE registers
                values at the beginning of the test are different than expected
                reset values.

    Change:     Exclude these registers from testing, since driver unload after
                enabling 16 VFs doesn't return these registers back to their
                reset value.

    Introduced: Day one.

    Relevance:  Running nictest after bnx2x driver sets 16 VFs.

 3. Problem:    Nvm upgrade doesn't supportes hex values.

    Change:     When validate format version allow hex values.

    Introduced: Day one.

    Relevance:  57xxx.

 4. Problem:    Hot-swap board feature in SYSOP mode fails to work in Linux.

    Change:     Save additional PCI configurations (MSI, MSIX etc.) so these
                features are restored after hot-swapping to a new board.

    Introduced: Day 1.

    Relevance:  Linux Only.

Enhancements:
-------------
 1. Request:    CQ69970 - Add new value 0x27d8 for nvm option 133
                (WC lane swap).

Version 7.8.15 (July 02, 2013)
==============================
Internal FW 7.8.23

Fixes:
------
 1. Problem:    external phy temperature isn't exposed in "mcp decode
                temperature" command.

    Change:     Add PHY temperature support to this command.

    Introduced: 7.8.14.

    Relevance:  578xx.

 2. Problem:    Wrong PCIe lane width display using "pstat" utility.

    Change:     Fixed "pstat" PCIe lane width parsing.

    Introduced: Day 1.

    Relevance:  57xxx.

 3. Problem:    CQ69569 - non external loopback tests (such as D2) failed on 1G
                optic modules if required speed is forced to 10G.

    Change:     Don't check optic module attributes in internal loopback mode.

    Introduced: Day one.

    Relevance:  All.

 4. Problem:    CQ69561/CQ69564/CQ69542 - link flap occur when link speed lower
                than 10G due to changes entered for CQ68365 to avoid
                intermittent link when speed changes between 10Mbps, 100Mpbs and
                1000Mbps.

    Change:     Revert change for CQ68365 for now.

    Introduced: 7.8.11.

    Relevance:  578xx.

 5. Problem:    CQ69770 - 10Mb/100Mb Half-Duplex are always advertised when
                only 10Mb/100Mb Full-Duplex configured.

    Change:     Select 10/100Mb half-duplex based of the speed capability mask.

    Introduced: Day 1.

    Relevance:  848xx/54618se.

Version 7.8.14 (June 13, 2013)
==============================
Internal FW 7.8.23

Fixes:
------
 1. Problem:    CQ69459 - Error message incase no HUT installed was not recorded
                into the log file.

    Change:     Print the error message, incase no HUT installed, only after the
                log file was opened.

    Introduced: Day 1.

    Relevance:  No HUT installed.

 2. Problem:    CQ69462 - DEBUG BREAK error message was not recorded into the
                log file before test termination.

    Change:     - Added to debug_break() a call to record the message to the log
                  file, if log file is already opened.
                - Add to linux_dbg_break_async_handler() dump of the last lines
                  in "dmesg" in case debug break occurred in kernel space.

    Introduced: Day 1.

    Relevance:  57xxx.

 3. Problem:    Shadow image needed for NC-SI OEM commands weren't upgraded for
                some boards which require that image.

    Change:     Add SSID of those boards to the condition to burn this image.

    Introduced: 7.8.12.

    Relevance:  578xx.

 4. Problem:    "prbstest" presented wrong statistics values after long time.

    Change:     Avoid 32bit values overflow.

    Introduced: day 1.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ69116 - add "mcp decode temperature" command reading die
                temperature from the shared memory.

Version 7.8.13 (June 06, 2013)
==============================
Internal FW 7.8.21

Fixes:
------
 1. Problem:    GRC Dump caused Parity errors in some blocks. This was due to
                the masking of parity errors itself.

    Change:     Script was updated to properly mask parity errors.

    Introduced: day 1.

    Relevance:  57xxx.

 2. Problem:    CQ69414 - Upgrading ISCSI image in MF_ALLOWED configuration,
                when I_B_CFG3,4 images do not exist, creates these images with
                incorrect IPV6 control flag setting.

    Change:     Set the IPV6 control flag for I_B_CFG3,4 according to the iscsi
                command line option (-ib/-ib_ipv6/-ib_ipv4n6).

    Introduced: 7.8.11.

    Relevance:  MF_ALLOWED configuration.

Enhancements:
-------------
 1. Request:    Replace debug macros DbgMessageXX with a single debug macro.

 2. Request:    CQ69279 - Add additional display for 'prbstest' command 578xx:
                - Time stamp for each counter error
                - Total run time until the final error, or the first error if
                  -soe option is enabled.
                - Alternate between a line of "." and a line of ":" on screen
                  display to indicate test is still alive.

Version 7.8.12 (May 14, 2013)
=============================
Internal FW 7.8.21

Fixes:
------
 1. Problem:    CQ68936 - Upgrading FCoE boot in MF allowed mode incase FEB_CFG
                already exist in NVRAM but FEB_CFG3,4 don't exist, overwrites
                FEB_CFG, FEB_CFG2.

    Change:     In this case, don't change FEB_CFG, FEB_CFG2 and only upgrade
                for the first time FEB_CFG3, FEB_CFG4.

    Introduced: 7.8.11.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ69072 - Add parameter to control number of VFs per PF to
                TCL script simulating CLP configuration.

 2. Request:    CQ67871 - Burn automatically shadow image needed for NC-SI OEM
                commands upon "nvm cfg" changes, "mfw upgrade" or "nvm prg"
                commandS.

 3. Request:    CQ69138 - "nvm dir" show 'HOSTBCV' type for BCV iSCSI and/or
                FCoE boot images.

Version 7.8.11 (May 08, 2013)
=============================
Internal FW 7.8.21

Fixes:
------
 1. Problem:    CQ68987 - Debug break encountered in manufacture process of
                empty board after programing the NVRAM.
                When NVRAM is empty, devices are detected and once MFW is
                programed on board, some devices are not accessible.

    Change:     Re-scan the PCI devices after programing the NVRAM (only incase
                the number of devices was reduced).

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ68365 - Intermittent link issue when link speed is lower than
                10G due to Warpcore firmware issue, which was initially observed
                on KX.

    Change:     Reset the OS8 Tx fifo during link initialization, and link
                change as a work-around.

    Introduced: Day 1.

    Relevance:  578xx.

 3. Problem:    Redundant traces about NPAR image configuration were showen
                even on a valid production flow.

    Change:     Mask those logs according to trace level.

    Introduced: 7.8.9.

    Relevance:  578xx.

 4. Problem:    CQ69034 - The utility "ump_extlb_test" fails to run on 57811.

    Change:     Fixed the part of code which parses the relevant RDF file
                according to device ID (DID).

    Introduced: Day 1.

    Relevance:  57811.

Enhancements:
-------------
 1. Request:    CQ68936 - Program iSCSI/FCoE boot cfg3 and cfg4 blocks for
                MF_ALLOWED configuration.

Version 7.8.10 (May 01, 2013)
=============================
Internal FW 7.8.21

Fixes:
------
 1. Problem:    Upgrading ISCSI image on 4-port device, fails to upgrade the
                configuration image for the 4'th port (I_B_CFG4).
                After that "nvm dir" fails with SIG fault.
                Failure was due to new image added before I_B_CFG 3,4 but
                I_B_CFG 3,4 image table indexes were not updated.

    Change:     Added to the image table a new column with image index to avoid
                adding new image without updating the image table index.

    Introduced: 7.8.9.

    Relevance:  57840.

Enhancements:
-------------
 1. Request:    CQ68664 - Add new PHY LED mode EXTPHY2 to set the link LED for
                100M/1G/10G through LED1 pin of the 8483x PHY.

 2. Request:    CQ67871 - Add a new image to NVRAM, boot configure shadow. The
                purpose of this image is to temporary store data from an NC-SI
                OEM commands.

Version 7.8.9 (April 23, 2013)
==============================
Internal FW 7.8.21

Fixes:
------
 1. Problem:    Incorrect LED behavior.

    Change:     Revert change from previous release.

    Introduced: 7.8.8.

    Relevance:  BCM84833/4.

 2. Problem:    CQ68702 - NPAR and NIV images are initiated by ediag with
                incorrect values, if L2 SF MAC address isn't configured yet.
                This happens as ediag is using L2 MAC address to generate values
                for those virgin images.

    Change:     Skip initialization of NPAR and NIV those blocks if SF L2 MAC
                address is all zeros (count on uEFI or CCM to initialize them).

    Introduced: Day 1.

    Relevance:  57xxx.

 3. Problem:    CQ68732 - Syntax check of '-sn' should allow serial numbers with
                last four characters different than vowels.

    Change:     Check that the last four characters are different than vowels.
                'Q' is an acceptable character.

    Introduced: 7.8.5.

    Relevance:  57xxx.

 4. Problem:    nvm cfg 196 (max number of MSIX vectors per PF) value of 0
                might be confusing.

    Change:     Add note in this nvm cfg description that the value of 0 means
                "unlimited".

    Introduced: Day 1.

    Relevance:  57xxx.

 5. Problem:    Disabling 20G link speed doesn't take effect after MFW first
                brought up the link in 20G.

    Change:     Actually disable 20G link speed, and don't leave configuration
                as default.

    Introduced: 7.8.0.

    Relevance:  57840-KR2.

Enhancements:
-------------
 1. Request:    CQ68486 - Support a different format of dynamic VPD fields
                settings during SYSOP process.
                Usage: ediag -sysop -m -autom -sn2 -vpd.

 2. Request:    CQ67301/CQ68591 - Add support for OEM card VPD/temperature
                notification. Add new nvm options 214 - 226.

Version 7.8.8 (April 03, 2013)
==============================
Internal FW 7.8.18

Fixes:
------
 1. Problem:    CQ68300 - When SFP module EEPROM is accessed by OEM entity, the
                I2C may stop responding.

    Change:     Provide a way to read both sections a0/a2 of module EEPROM.

    Introduced: Day one.

    Relevance:  8726/8727/57800/57810-SFI.

 2. Problem:    CQ66903 - Specific active DAC cannot get link.

    Change:     Set firmware mode to 0x2 in case of any DAC type.

    Introduced: Day one.

    Relevance:  578xx-SFI.

 3. Problem:    Typo in the description of nvm cfg 200 (SF storage
                personality).

    Change:     Fix typo.

    Introduced: 7.8.3.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ68597 -  Add to user block command support for input file.
                Usage: "nvm usrblk -f <filename>".
                For empty user block use "nvm usrblk -s <size>".

 2. Request:    CQ68238 - add new nvm cfg (#213) enabling to hide DCBX feature
                from CCM/BACS menus.

Version 7.8.7 (March 13, 2013)
==============================
Internal FW 7.8.18

Fixes:
------
 1. Problem:    CQ67465 - "device" command should show MBA capability on 1'st
                function only of each port, in multi-function switch depended
                mode.

    Change:     Change "device" not to show MBA capability on PF2 and above in
                multi-function switch depended mode.

    Introduced: Day one.

    Relevance:  57712, 578xx multi-function switch depended mode.

 2. Problem:    CQ67285 - iSCSI-boot installation fails when switching SFP+
                boot port and moving the SFP+ module prior to boot. The SFP+
                insertion triggers an interrupt which configures the SFP+ module
                according to module parameters that were not init.

    Change:     In the context of the assertion interrupt of the SFP+ module
                configure the SFP+ module only if PHY parameters were
                initialized.

    Introduced: 7.4.0.

    Relevance:  578xx - SFI.

 3. Problem:    CQ67916 - Long KR2 link up time due to consecutive KR2 disable/
                recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day one.

    Relevance:  57840-KR2.

Version 7.8.6 (March 06, 2013)
==============================
Internal FW 7.8.17

Fixes:
------
 1. Problem:    CQ67917 Nictest A36 PGLUE_B register test fails due to
                PGLUE_B_REG_INTERNAL_VFID_ENABLE_31_0_VALUE,
                PGLUE_B_REG_INTERNAL_VFID_ENABLE_95_64_VALUE registers
                values at the beginning of the test are different than expected
                reset values.

    Change:     Exclude these registers from testing, since driver unload after
                enabling 16 VFs doesn't return these registers back to their
                reset value.

    Introduced: Day one.

    Relevance:  Running nictest after bnx2x driver sets 16 VFs.

 2. Problem:    Idle check might fail on "NIG: interrupt 1 is active".

    Change:     Changed idle_chk to warning "NIG: port cos was paused too long".

    Introduced: Day one.

    Relevance:  578xx.

 3. Problem:    CQ67859 - Long KR2 link up time due to consecutive KR2 disable/
                recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day one.

    Relevance:  57840-KR2.

Version 7.8.5 (February 21, 2013)
=================================
Internal FW 7.8.16

Fixes:
------
 1. Problem:    CQ67004 - Syntax checking of '-sn' fails to allow serial
                numbers with other than hexadecimal digits in one of the
                last four characters.

    Change:     Check that the last four characters of the serial number
                are alphanumeric except vowels and 'Q'.

    Introduced: 7.8.4.

    Relevance:  Using command line option "-sn".

 2. Problem:    In SFP detection module, when 1G device is detected, an error
                for wrong forced link speed is printed, regardless of
                requested link speed.

    Change:     Print warning for wrong forced link speed only if the previous
                doesn't match the current link speed.

    Introduced: 7.4.8.

    Relevance:  578xx - SFP+.

 3. Problem:    CQ67395 - lediag sometimes breaks upon attempt to read VPD
                family version, when no device installed (on specific system).

    Change:     Do not attempt to read VPD family version, when no device is
                installed in system.

    Introduced: T7.2.

    Relevance:  No HUT installed.

Enhancements:
-------------
 1. Request:    CQ66891 Cont.- Add command line option "-iffe" for SYSOP
                production of boards with IFFE feature enabled.

 2. Request:    CQ67334 - Add en_sriov command for simple configure
                of SRIOV enable for all NPAR/SF modes.

 3. Request:    CQ67127 - Add support to new VPD fields (FN/CC/FC).
                First support to binary VPD field (YB).

 4. Request:    CQ67078 - Control SFP+ tap values through new NVM configuration
                options 211, 212.

 5. Request:    CQ67001 Add user block support.
                Usage: "nvm usrblk <size>".

 6. Request:    Set elink shmem link indication as up during loopback test.

Version 7.8.4 (January 02, 2013)
================================
Internal FW 7.8.13

Fixes:
------
 1. Problem:    CQ66973 - Failed to run argument text file via
                "ediag @argfile.txt", which includes filenames.

    Change:     1) Moved the location of free memory allocated for input
                arguments to the end of procedure which handles input
                arguments. The current location of free memory caused
                incorrect filenames for options -log, -fmac etc.
                2) Moved the location of parsing arguments file to the
                beginning of the procedure which handles input arguments.
                The current location was after checking if -sysop mode.

    Introduced: T6.0.

    Relevance:  Using "ediag @argfile.txt".

 2. Problem:    read_sfp_module fails to read from devices 2 and 4.

    Change:     Fix offset calculation.

    Introduced: Day 1.

    Relevance:  57840/quad port/SFP.

 3. Problem:    CQ67008 - Command line option "-sn" translation to VPD V2 field
                was incorrect for serial numbers with 'year' character 0 or 1.

    Change:     Fix serial number translation to VPD V2 field in case of 'year'
                character 0 or 1.

    Introduced: 7.8.2.

    Relevance:  Using "-sn", "-vpd" options.

 4. Problem:    CQ66402 - EEE is not fully enabled for BCM84834.

    Change:     Resolve EEE AN for BCM84834 as well.

    Introduced: Day 1.

    Relevance:  EEE in BCM84834.

 5. Problem:    wol_dump script shows incorrect values for the second ports of
                each engine.

    Change:     Fix access to shmem on the uneven ports.

    Introduced: Day 1.

    Relevance:  57840-4 port.

Enhancements:
-------------
 1. Request:    CQ66891 - Add to "nvm cfg" IFFE configuration options.

 2. Request:    CQ66972 - Remove pause when running argument text file.

 3. Request:    CQ66689 - Add support for RJ45 SFP module.

 4. Request:    CQ64735 - Control SFP+ tap values through new nvm cfg #210.

 5. Request:    CQ67004 - Add more syntax checking of the serial number input
                from -sn command line option.

 6. Request:    CQ67002 - Enhance command line option "-sn" to read the serial
                number string from a text file.

 7. Request:    CQ67114 - Add NVM configuration for additional boards.

Version 7.8.3 (December 12, 2012)
=================================
Internal FW 7.8.10

Fixes:
------
 1. Problem:    "linkdump" debugging utility fails on single port board.

    Change:     Fixed linkdump TCL script, in case of single port board.

    Introduced: Day 1.

    Relevance:  Single port board.

 2. Problem:    After PMF migration when KR2 is enabled, a link flap would
                occur, since the KR work-around indication was not saved
                in shmem.

    Change:     Save KR2 work-around parameter in shmem, and synchronize it
                similar to the rest of link parameters with all PFs.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 3. Problem:    CQ66761 - Fail message when attempting to upgrade PHY on ports
                3 and 4.

    Change:     Read the expected PHY address from the right location in the
                shmem.

    Introduced: Day 1.

    Relevance:  578xx-4 port with external PHY.

 4. Problem:    CQ66872 - UEFI eDiag hangs when upgrading/downgrading MFW, when
                attempting to update VPD information on specific OEMs.

    Change:     Increased temporary string size, which is used to save the MFW
                version, since it caused memory corruption.

    Introduced: 7.8.2 (Upon CQ66152 enhancement).

    Relevance:  UEFI eDiag only.

Enhancements:
-------------
 1. Request:    Change "wol_dump" utility to dump all paths/ports information.
                Add link dump and mcp trace information.
                Add support for 4-port boards.
                Usage: wol_dump.

 2. Request:    CQ66484 - Improve PRBS test:
                * Add 10G support ("-speed 10G").
                * Add external loopback using DAC ("-kind DAC").
                * Add true support to control PRBS pattern (e.g. "patnum 23").
                In addition, fix external loopback using fiber optics for some
                ports which use epio higher than 28.

 3. Request:    CQ66789 - Add nvm cfg to control storage personality in SF mode
                (nvm cfg #200) and new bit to prevent iSCSI as if license is
                invalid (nvm cfg #201).

Version 7.8.2 (Nov 18, 2012)
============================
Internal FW 7.8.9

Fixes:
------
 1. Problem:    "prbstest -l EXTERNAL" fails on single port board.

    Change:     Fixed prbstest loop on the board's devices in external
                loop mode.

    Introduced: Day 1.

    Relevance:  578xx with single port.

 2. Problem:    "prbstest -w <wait time (ms)>" does'nt run for the requested
                duration on 578xx.

    Change:     Fixed prbstest to wait as the requested duration by user.

    Introduced: Day 1.

    Relevance:  57811.

 3. Problem:    nictest L2 tests in host loopback mode don't set back the
                HLB device medium into HW_DEFAULT.

    Change:     Set HLB device medium back to HW_DEFAULT when L2 test
                completes.

    Introduced: Day 1.

    Relevance:  5771x, 578xx in HLB mode.

 4. Problem:    Possible unaligned access warning during "nvm upgrade" using
                lediag IA64.

    Change:     Replaced assignment of FWIMG_HDR pointer with "memcpy" to
                FWIMG_HDR structure in the function, which performs image
                manipulation during upgrade.

    Introduced: Day 1.

    Relevance:  Linux lediag IA64.

 5. Problem:    "nvm cfg" option 96 "VF PCI Device ID" was not set correctly
                on some 578xx boards.

    Change:     Fixed "nvm cfg" spread sheet "VF PCI Device ID" values on some
                boards.

    Introduced: Day 1.

    Relevance:  578xx.

 6. Problem:    CQ65780 - Link flap on KR2 against 20G switch.
                CQ66364 - Link delay on KR2 connected to Pass through.
                CQ66079 - KR2 cannot link against various 10G switches.
                CQ66331 - Same as above.
                CQ66407 - Same as above.
                CQ66381 - Same as above.

    Change:     1. Add 10G fallback to KR2 devices, in case link partner doesn't
                   set NP bit in the base page, or it only advertise 1G-KX.
                   In that case, KR2 configuration is removed, and AN will be
                   restarted.
                2. Add KR2 recovery, in case port is in 10G-fallback mode, and
                   sigdet is cleared, BP is cleared or LP advertises NP in BP.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 7. Problem:    CQ66467 - 'nictest' loopback tests failed when NPAR maximum
                bandwidth is set to non-default. Failure is encountered when
                test attempts to restore link speed as prior to test, since
                speed is not one of the supported speeds by "lmdev set_speed".

    Change:     Do not attempt to restore link settings at the end of test, as
                prior to test. When driver will be loaded again, link speed will
                be restored according to NVRAM configurations.

    Introduced: 7.2.50 (Upon CQ62397 fix).

    Relevance:  5771x, 578xx.

 8. Problem:    CQ66489 - debug break occurs upon upgrading CCM version
                (without using '-F' force switch).

    Change:     Support new CCM version format.

    Introduced: Day 1.

    Relevance:  5771x, 578xx.

 9. Problem:    CQ66435 - PCIE Fatal error observed while exiting ediag
                after programing an empty single-port board.

    Change:     Re-calculate the total number of devices upon exit, to avoid
                attempt to cleanup invalid device.

    Introduced: Day 1.

    Relevance:  Empty single-port board.

10. Problem:    CQ66169 - Nictest PHY loopback test (D2) failed on 20G boards,
                in MF mode.

    Change:     a. Fixed LM function "lm_init_phy" in case of XGXS_10_LOOPBACK
                and AUTONEG to set ELINK speed according to link speed
                capability (instead of fixed 10G).
                b. Fixed "vnic_cfg" TCL script to support maximum bandwidth of
                200 (instead of 100).

    Introduced: Day 1.

    Relevance:  20G board in MF mode.

Enhancements:
-------------
 1. Request:    CQ66152 - Support dynamic VPD fields settings during SYSOP
                process of new boards production.
                Usage: ediag -sysop -m -autom -sn -vpd.

Version 7.8.1 (Nov 06, 2012)
============================
Internal FW 7.8.8

Fixes:
------
 1. Problem:    CQ65731 - "nvm cfg -skip_options" command fails with
                segmentation fault, when a large number of options to skip is
                requested.

    Change:     Increase the string length which holds the options to skip.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ65727, CQ65910 - KR2 fails to link against (non-8073)
                10G switch.

    Change:     Apply KR2 work-around in case CL73 fsm is stuck waiting for
                next-page.

    Introduced: T7.5.

    Relevance:  KR2.

 3. Problem:    "nvm prg -skip_config" doesn't preserve the manufacture port
                hardware config block properly.

    Change:     Fixed the part which keeps the MAC addresses.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ65991 - "nvm cfg -dump" outputs values only for the first
                device of 57711, though dual port devices.

    Change:     Fixed the utility "print_configuration" in nvm_cfg TCL script.
                The part which handles 57711 per function options should have
                used the variable $::current(SPECIAL_NVM_MODE_FUNC_NUM) instead
                of $::current(FUNC).

    Introduced: 7.0.10 upon CQ53376 enhancement request.

    Relevance:  57711.

 5. Problem:    GRC Dump that dumps MCP Scratchpad data causes parity errors
                on 57711 and 57710.

    Change:     Updated the script to mask MCP Parity errors for 57710
                and 57711.

    Introduced: T7.0.

    Relevance:  57711 and 57710.

 6. Problem:    CQ61866 - Link drops during reboot test using MFW older than
                T7.2 due to lack of appropriate PHY lock in those versions.
                Since this is timing related, some systems may exhibit this
                issue more often than others.

    Change:     When old MFW is detected, check correct EMAC setting for CL45
                and the correct PHY clock to achieve good PHY access. In case
                it is not set correctly, change it accordingly.
                In addition, in case of external PHY, set the external PHY's
                EMAC mode in case it is different than the internal PHY.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    CQ65641 - No 1G link against certain switches.

    Change:     Restore CL72 misc control register to default value rather than
                zero.

    Introduced: T7.2.

    Relevance:  578xx-KR.

 8. Problem:    nvm cfg default values of some 57840 devices included
                wrong PCI ID value.

    Change:     Fix the values when using "nvm cfg <board>" command.

    Introduced: day 1.

    Relevance:  57840.

 9. Problem:    CQ65784 - No link against 1G switch in KR2 mode.

    Change:     Check 1G link as well in KR2 mode.

    Introduced: 7.8.0.

    Relevance:  57840.

10. Problem:    Several KR registers were not set correctly back to default
                correctly after loopback test.

    Change:     Set those global registers over the global WC lane (zero) rather
                than the current lane.

    Introduced: 7.4.3.

    Relevance:  57840 - KR/KR2.

11. Problem:    CQ65773 - No link after PXE boot in link flap avoidance case.

    Change:     Set the appropriate default PHY DEVAD even if LFA kicks in.

    Introduced: 7.4.3.

    Relevance:  57712.

12. Problem:    Upgrading MBA image failed on boards with 57840 device IDs.

    Change:     Add support of additional 57840 device IDs to updating MBA
                header procedure.

    Introduced: 7.6.0.

    Relevance:  57840.

13. Problem:    CQ66119 - ediag encounters debug break while exiting on board
                with empty NVRAM.

    Change:     Debug break in lm_reset_path() only if MCP is detected.

    Introduced: 7.2.55.

    Relevance:  Board with empty NVRAM.

14. Problem:    CQ63937 - D3 external loopback test failing on 20G boards.
                CQ66169 - D2 PHY loopback test fail.

    Change:     Refine force 20G KR2 mode, mainly around CL72 registers.

    Introduced: Day 1.

    Relevance:  57840-KR2.

15. Problem:    CQ66284 - DXGXS fails to pass traffic.

    Change:     Set XMAC mode to XLGMII only in KR2 and not in DXGXS mode.

    Introduced: 7.8.0.

    Relevance:  57840-DXGXS.

16. Problem:    "nvm cfg" when driver loaded shows an error message:
                "called error with too many arguments" instead of warning:
                "WARNING: nvm cfg command can't be performed while driver
                is running. Please unload device driver before using nvm_cfg".

    Change:     Removed ocdiag.tcl script re-definition of "error" command,
                which was not used.

    Introduced: 7.4.7.

    Relevance:  5771x, 578xx.

Enhancements:
-------------
 1. Request:    CQ65929 - Add a new command line option "-afex_mac" to set the
                AFEX block niv func mac addresses according to the board's
                primary mac address after it is programed on a blank board.

    Relevance:  SYSOP programing a blank board.

 2. Request:    CQ60920 - When user changes "nvm cfg" options 50 or 166 for
                port swap, show a reminder to run "swap_ports_cfg" utility
                for other required changes in configuration.
                The "swap_ports_cfg" utility will swap all the per port and
                per function configurations between the ports and functions.
                Usage (for 2 ports):   swap_ports_cfg
                Optional:               -swap_macs (by defualt don't swap macs)
                Usage (for 4 ports):   swap_ports_cfg
                                        -from <from 4port cfg e.g. {0 1 2 3}>
                                        -to   <to 4 port cfg e.g. {1 0 3 2}
                Optional:               -swap_macs (by defualt don't swap macs)

 3. Request:    Added debugging support for PCIe as requested by the
                engineering team.

 4. Request:    CQ66070 - Delete standalone CCM image, if MBA is programmed
                with built-in CCM.

 5. Request:    Notify user that reboot is required after changing number of
                VFs in nvm configuration.

 6. Request:    Added reading of DCBX Data to GRC Dump.

Version 7.8.0 (Sep 23, 2012)
============================
Internal FW 7.8.2

Fixes:
------
 1. Problem:    When SFP+ module is plugged in after driver is already loaded,
                it may not be recognized.

    Change:     Allow SFP module recognition time of up to 300ms, without
                resetting the module power in the middle.

    Relevance:  578xx-SFP.

    Introduced: 7.4.1.

 2. Problem:    Link checking for D3 test was based on sub-optimal register.

    Change:     Use the Digital5 link_status register for force 20G-KR link
                detection.

    Introduced: 7.5.5.

    Relevance:  57840.

 3. Problem:    Intermittent ping lost when link speed is 10G over KR2
                configuration.

    Change:     Enable XLGMII alignment in XMAC only when link speed is 20G.

    Introduced: 7.5.5.

    Relevance:  57840.

 4. Problem:    CQ63937 - KR/KR2 link intermittently failing.

    Change:     Actively restart AUTONEG when driver is loaded.

    Introduced: 7.5.0.

    Relevance:  578xx-KR.

 5. Problem:    CQ56737(cont.) - TX_DIS signal causes current leakage issue on
                the module 3.3V power rail (V_3P3_SFP2) when no module is
                plugged.

    Change:     Keep TX laser always enabled even when SFP+ module is plugged
                out.

    Introduced: 7.4.0.

    Relevance:  578xx.

 6. Problem:    When device in KR2 mode link with BCM8073, and link partner
                initiate AUTONEG, link is not recovered.

    Change:     In this mode, when link goes down, and KR2 work-around is set,
                re-advertise 20G speed and restart autoneg. This fix also covers
                scenario where a 8073 link partner is swapped with true KR2 link
                partner.

    Introduced: T7.5.

    Relevance:  57840-KR2.

 7. Problem:    ediag -no_pci mode fails with debug break.

    Change:     Removed from ocdiag.tcl script register readings, which were
                performed outside procedures.

    Introduced: 7.4.7.

    Relevance:  All.

 8. Problem:    CQ65645 - Possible incorrect link speed provision following
                rapid link speed change.

    Change:     Clear link speed mask after each link change, and not only after
                link down.

    Introduced: Day 1.

    Relevance:  Autoneg.

 9. Problem:    "nvm cfg -dump" doesn't dump option 189 "EEE power saving mode"
                current value.

    Change:     Add NVM spread sheet default value for option 189.

    Introduced: 7.4.0.

    Relevance:  All.

10. Problem:    CQ65640 - nvm write "auto mode" doesn't work on new "E" series
                NVRAMs.

    Change:     Add a different support for NVM "auto mode" in case of 578xx B0
                and above.

    Introduced: Day 1.

    Relevance:  578xx B0.

11. Problem:    Ethtool -p working for PMF only.

    Change:     Set HW lock for each PHY transaction. Allow led blinking for
                not PMF.

    Introduced: Day 1.

Enhancements:
-------------
 1. Request:    CQ63733/CQ63815 - Support new DIDs for 57840 device.

 2. Request:    Add PHY FW upgrade for BCM84834.

 3. Request:    Add support for 20G-KR2.

 4. Request:    Add support for BER estimation using eye margin measurements.

 5. Request:    Add nvm cfg #196 to control maximum number of MSIX vectors
                advertised per PF in PCI config space.

 6. Request:    Add command line option -nvmsize for printing NVRAM size at
                the log file beginning.

Version 7.4.9 (August 29, 2012)
===============================
Internal FW 7.4.11

Fixes:
------
 1. Problem:    ediag shows error message "can't read nvm_cfg: no such element
                in array" upon sourcing .cfg file with invalid nvm cfg options.

    Change:     Fixed the TCL utility nvmcfgT::nvm_cfg accordingly:
                In case nvm cfg option is ignored or doesn't exist for this
                device, show warning and continue to next nvm cfg option.

    Relevance:  All.

    Introduced: 7.0.14. (upon CQ55961 fix).

 2. Problem:    CQ65280 - idle check contains errors on 57711.

    Change:     Correct link's opening of NIG-BRB filters for 57710 and 57711,
                which set a non-existent bit, thus failed the idle check.

    Introduced: 7.4.4.

    Relevance:  57710, 57711.

Enhancements:
-------------
 1. Request:    Align HSI dev_info.h and Microcode shmem.fmt according with the
                generated files from nvm_cfg spreadsheet.

Version 7.4.8 (August 20, 2012)
===============================
Internal FW 7.4.8

Fixes:
------
 1. Problem:    CQ64645 - Duplex state is always shown as full even if actual
                duplex is half.

    Change:     Display the correct duplex value.

    Relevance:  57712.

    Introduced: T7.0.

 2. Problem:    Link flap avoidance feature might not work on BE architecture.

    Change:     Fix endianity in LFA structure in the scratchpad.

    Introduced: 7.4.3 (when LFA feature was added).

 3. Problem:    CQ56737 - TX_DIS signal causes current leakage issue on the
                module 3.3V power rail (V_3P3_SFP2) when no module is plugged.

    Change:     Keep TX laser always enabled, should be disable in case of fault
                to get valid module.

    Introduced: 1.70.00.

    Relevance:  578xx.

 4. Problem:    CQ65074 - Possible no link when LFA kicks in after pre-boot
                driver initialized the link, since preboot drivers do not
                work in interrupt mode, hence do not initialize it.

    Change:     If LFA terms are met, initialize the necessary interrupt
                registers in the PHYs.

    Introduced: 7.4.3.

    Relevance:  57712 + 8073/8727/848x3.
                578xx + 54618se/848x3.

 5. Problem:    CQ65207 - Linux lediag: The Command Line Option "-ver" doesn't
                print the lediag version.

    Change:     Added to diag init function a printout of the current version
                in case of linux lediag as well.

    Introduced: Day One.

    Relevance:  Linux lediag only.

 6. Problem:    CQ65209 - Linux lediag: The command Line Option "-nvmchk"
                doesn't print the CRC results in case it passed.

    Change:     Added printout (in green) in case of NVMRAM CRC check pass.
                (There were printouts only in case of failures).

    Introduced: Day One.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add EEE to LFA conditions.

Version 7.4.7 (August 08, 2012)
===============================
Internal FW 7.4.8

Fixes:
------
 1. Problem:    Problem to configure 57810S SFP+ Tx de-emphasis with
                ediag built-in command line.

    Change:     Script fixed, Lane 0 changed to Lane 0-3 in tx_amp, and Lane
                0-3 changed to Lane 0 in tx_amp.

    Relevance:  All.

 2. Problem:    "mcp decode lfa" always shows the port on the second path.

    Change:     Get shmem2_base according to the path id.

    Introduced: 7.4.4.

    Relevance:  57712, 578xx.

 3. Problem:    "prbs" utility doesn't transmit pattern continuously.

    Change:     Removed MDIO release lock and MCP reset from "prbs" utility.
                Added "prbs_stop" for user to stop PRBS transit when desired.

    Introduced: 7.2.51.

    Relevance:  57712, 578xx.

 4. Problem:    Embed ocdiag into diag.

    Change:     Script "ocdiag.tcl" integrated into ediag regression.

 5. Problem:    idle_chk under traffic may fail.

    Change:     Update registers' definitions.

    Introduced: Day one.

    Relevance:  All.

Version 7.4.6 (July 11, 2012)
=============================
Internal FW 7.4.8

Fixes:
------
 1. Problem:    set_niv_mode scripts crashes as nvm cfg #140 was removed.

    Change:     Remove change of nvm cfg 140 from the script.

    Introduced: 7.4.5.

    Relevance:  All.

 2. Problem:    ediag fail to load in some scenarios with debug break
                "Zero isn't a valid value for pdev->params.max_rss_chains".

    Change:     Remove check in LM of pdev->params.max_rss_chains in case
                of ediag.

    Introduced: 7.4.4 with MFW 7.4.2 to 7.4.5.

    Relevance:  All.

 3. Problem:    CQ64368 - GRC timeouts are seen when driver trying to configure
                XMAC with PFC setting, while link speed is lower than 10G, and
                only UMAC is active. On extreme cases, GRC timeout may lead to
                system hang.

    Change:     Configure PFC parameters on XMAC only when XMAC is active.

    Introduced: Day 1.

    Relevance:  578xx connected to DCBX enabled switch in 1G link speed or
                lower.

Enhancements:
-------------
 1. Request:    Added support of PERST assertion and de-assertion handling
                to HW_SET image.

Version 7.4.5 (June 27, 2012)
=============================
Internal FW 7.4.6

Fixes:
------
 1. Problem:    CQ64084 - eDiag enables programing MBA image of non matching
                device type.

    Change:     Fix in function verify_mba_image(): the "Vendor Flags" within
                the MBA image exp_rom header should be 16-bit swapped in
                little endian machines.

    Introduced: 7.4.2 upon ppc64 support.

    Relevance:  577xx and 578xx.

Enhancements:
-------------
 1. Request:    Hide deprecated nvm cfg #140 (afex port link speed).

 2. Request:    CQ63615 - add new NVM configuration option to show/hide
                the SRIOV menu.
                Added option #192 "Hide SRIOV menu", disabled by default.

 3. Request:    CQ64131 - add nvm cfg fields for "pause on host ring":
                #193 for npar, #194 and afex and #195 for SF mode.

Version 7.4.4 (June 19, 2012)
=============================
Internal FW 7.4.7

Fixes:
------
 1. Problem:    ediag -no_pci breaks with error message:
                "Nictest_init: Failed to get device ID".

    Change:     Do not attempt to initialize nictest default set of tests,
                in case of -no_pci mode.

    Introduced: T7.2.

    Relevance:  577xx and 578xx.

 2. Problem:    Test C10 fails when nvm cfg option 72 "Hide port1" is enabled.

    Change:     In case of single-port device, do not attempt to test lane 2.

    Introduced: Day one.

    Relevance:  577xx, 578xx.

 3. Problem:    "mcp decode lfa" always shows the port on the first path.

    Change:     Get shmem2_base according to the path id.

    Introduced: 7.4.3.

    Relevance:  57712, 578xx.

 4. Problem:    Device may crash due to incoming traffic when driver is
                unloaded.
                The root cause is insufficient gate closure between the NIG to
                the BRB during link flap avoidance. It used to rely on specific
                filters, which didn't capture all traffic.

    Change:     Close the NIG-BRB gate during LFA reset to prevent packets
                flowing in before BRB is reset.

    Introduced: 7.4.3.

 5. Problem:    Nictest A33 MSIX test fails with idle check errors:
                "AEU: P0 AFTER_INVERT_3 is not 0, Value is 0xac00000".

    Change:     Mask SW timers attn_2 bits 27-30 in MISC registers:
                MISC_REG_AEU_AFTER_INVERT_3_FUNC_0,
                MISC_REG_AEU_AFTER_INVERT_3_FUNC_1,
                MISC_REG_AEU_AFTER_INVERT_3_MCP.

    Introduced: 7.5.0.

    Relevance:  57840 B1.

 6. Problem:    CQ63755 - Driver crash after load as result of LFA logic.

    Change:     Close and open NIG-BRB gates only during when driver loads and
                unloads respectively.

    Introduced: 7.4.3.

Enhancements:
-------------
 1. Request:    Change "nvm cfg" spreadsheet excluded fields to be according to
                chip number instead of device IDs.

 2. Request:    Add support to MFW version with 4 digits:
                Major.Minor.Build.Drop.

    Relevance:  57712, 578xx.

 3. Request:    Add NVM configuration for new 57840 boards.

Version 7.4.3 (June 05, 2012)
=============================
Internal FW 7.4.6

Fixes:
------
 1. Problem:    CQ63500 - "device" command should show MBA capability
                on 1'st function of each port in NPAR mode.

    Change:     Change "device" not to show MBA capability on PF2 and above.

    Introduced: Day one.

    Relevance:  57712, 578xx NPAR mode.

 2. Problem:    CQ63505 - "nvm dir" shows NIVPROFILES image invalid version.
                "nvm crc" shows NIVPROFILES image mismatch crc.

    Change:     NIVPROFILES image version and crc are not available, thus
                "nvm dir" and "nvm crc" will display "N/A" for NIVPROFILES.

    Introduced: Day one.

    Relevance:  57712, 578xx AFEX mode.

 3. Problem:    CQ63549 - "nvm upgrade" fails to upgrade MBA/EFI combined
                image. Error display "Not a valid NetXtreme II MBA image".

    Change:     Re-add 57811 device IDs to the MBA header check, which were
                omitted upon supporting ppc64.

    Introduced: 7.4.2.

    Relevance:  57811.

 4. Problem:    CQ63512 - Test C6 fails on 57811 device.

    Change:     Setting the ILT L2P memory was done for device ID > 5710,
                thus not performed on 57811 device (DID 5693).

    Introduced: Day One.

    Relevance:  57811.

Enhancements:
-------------
 1. Request:    CQ63223 - Hide nvm cfg option to enable Gen3 (field #132) for
                57800 and 57810.

 2. Request:    Add new value 0xd827 (02133120) for nvm cfg 133 (WC lane swap).

 3. Request:    Hide nvm cfg per-port option to enable FLR (field #167).
                Rename nvm cfg shared option (field #188) to "FLR capability".

 4. Request:    CQ63159 - Add basic Link Flap Avoidance support.
                Whenever link toggles, the requested link parameters are saved
                in a shared memory and are used to determine the conditions for
                LFA to occur. LFA can be achieved only in case all of the
                following terms take place:
                1. MFW release used is 7.4.2 and above.
                2. Requested Link Speed, Duplex, Speed Capability Mask and
                   Requested Flow Control are the same as the saved ones.
                Note that in case LFA conditions are not met, link should be
                re-initialized and flapped like before.
                The "mcp decode lfa" can be viewed to see LFA stats.

 5. Request:    CQ63321 - enable parity attention for 578xx.

    Relevance:  578xx.

Version 7.4.2 (May 23, 2012)
============================
Internal FW 7.4.4

Fixes:
------
 1. Problem:    When changing "nvm cfg" values to board defaults, the values
                in NPAR and NIV images didn't change.

    Change:     Fix logic to change values in those images as well.

    Introduced: Day One.

    Relevance:  578xx and 57712.

 2. Problem:    Debug prints show errors - access to wrong gpio.

    Change:     Test for Tx Fault only when using SFI.

    Introduced: 7.4.1.

    Relevance:  578xx non-SFI.

 3. Problem:    CQ62980 - dump_all_cfg displays two ports on single-port
                device 57811.

    Change:     Changed nvmcfgT::GetMaxNumOfPorts to return 1 in this case.

    Introduced: Day One.

    Relevance:  57811 single-port device.

Enhancements:
-------------
 1. Request:    CQ63269 - Support NVM commands on ppc64 systems.

 2. Request:    CQ63252 - "nvm prg" shouldn't program the NIV block by default.
                It should only program the NIV block if option "force_niv"
                is given.
                In case of blank NVRAM, "nvm prg" should program NIV block
                (if the image includes a NIV block).

 3. Problem:    CQ63401 - Support "nvm cfg -dump"/"dump_all_cfg" with
                multiple boards.

Version 7.4.1 (May 13, 2012)
============================
Internal FW 7.4.4

Fixes:
------
 1. Problem:    CQ63033 - Nictest D3 External Loopback Test fails in AFEX mode.

    Change:     In AFEX mode and external loopback test, set the strip CRC mode.

    Introduced: Day One.

    Relevance:  578xx and 57712.

 2. Problem:    CQ63087 - AFEX net MAC address (nvm cfg option 148) configured
                incorrectly for devices 3-8, when NVRAM image is updated from
                image w/o AFEX block to image, which includes AFEX block.

    Change:     Removed redundant code line which over-written the AFEX net MAC
                address with the primary SF MAC address of the current PF.

    Introduced: 7.2.52 after CQ62804 resolved.

    Relevance:  578xx and 57712, AFEX mode.

 3. Problem:    Running external loopback test with "-no_driver_load" option
                fails with error "Driver operation could not be accomplished".

    Change:     Do not check current link speed prior to external loopback test
                in case option "-no_driver_load" was requested.

    Introduced: 7.2.50.

    Relevance:  Using "-no_driver_load" option.

 4. Problem:    read_sfp_eeprom script fail in case only single EPIO is used
                to control I2C switch.

    Change:     Fix script to support any EPIO configuration.

    Introduced: 7.2.50.

    Relevance:  578xx.

 5. Problem:    CQ62543 - SFP+ module's not responding to I2C request.
                This problem occurs when the MFW is reset during I2C operation,
                and cause the I2C bus for read error due to "Transaction
                Pending".

    Change:     Extend the I2C work-around such that on the last try, perform a
                SFP+ power reset to release this state.

    Introduced: Day 1.

    Relevance:  578xx SFI.
                This fix applies only for boards with SFP+ power disable option
                (nvm cfg 160).

 6. Problem:    CQ63202 Linux lediag failed to compile on Suse10SP4 x86-64 with
                error:  IRQF_SHARED undeclared.

    Change:     Define IRQ_SHARED in case it is not defined.

    Introduced: 7.2.51.

    Relevance:  Linux kernel Suse10SP4.

 7. Problem:    CQ62312 - Lediag does not run under SLES 11.2 i386 pae.

    Change:     Created lediag release flavor lediag-7.4.1-i386-pae.

    Introduced: Day One.

    Relevance:  SLES 11.2 i386 pae.

Enhancements:
-------------
 1. Request:    TX_Fault support for SFP+ Modules on 578xx boards.

 2. Request:    Change NPAR maximum bandwidth default value from 25 to 100.

 3. Request:    Change idle check error to warning regarding "IGU: some
                unauthorized commands arrived to the IGU", as since new MFW igu
                allocation method is used, the OS PCI driver might try working
                with unassigned status blocks.

 4. Request:    CQ63067 - Support new NVRAM fields for PF resource allocation
                feature:
                - remove nvm cfg fields 93, 94, 95.
                - Add options 190 and 191 for per port and per PF num of VFs.

 5. Request:    Remove nvm cfg 142 (AFEX profile list), as it is configured by
                remote side and not by host side.

Version 7.4.0 (May 03, 2012)
============================
Internal FW 7.4.4

Fixes:
------
 1. Problem:    CQ62480 - RSOD when launching ediag_x64.efi from PCIeSSD drive.

    Change:     1. Fixed function tclbrcm_parse_nopci() attempt to access
                   invalid diag input arguments.
                2. Initialized um_update_dev_info() UEFI function return code.
                3. Initialized running mode.
                4. Fixed find_next_arg() compare argument string.

    Introduced: Day One.

    Relevance:  578xx and 57712.

 2. Problem:    CQ62804 - AFEX block MAC addresses are all zero when NVRAM
                image is updated from image w/o AFEX block to image, which
                includes AFEX block.

    Change:     Changed the behavior in case of NVRAM programing from
                non-existing AFEX block to image having AFEX block. In this
                case, AFEX MAC addresses are built according to the SF primary
                MAC address.

    Introduced: Day One.

    Relevance:  578xx and 57712.

Enhancements:
-------------
 1. Request:    Add epio script to read/write EPIO pins easily.

 2. Request:    CQ62637 - When SFP (1G) optic module is plugged in, adjust the
                link speed accordingly.

 3. Request:    Add EEE power saving mode field to nvm cfg (field 189).

Version 7.2.51 (April 16, 2012)
===============================
Internal FW 7.2.51

Fixes:
------
 1. Problem:    CQ62442 - output of eDiag version string at the beginning
                of the log file breaks OEM scripts.

    Change:     Output eDiag version string to the begining of the log file
                in SYSOP mode only (-sysop option used).

    Introduced: 7.2.13. Per request in CQ62177.

    Relevance:  578xx and 57712.

 2. Problem:    lediag has two data bases for all supported devices.

    Change:     Removed the use of dev_desc_t evr_info[] data base.
                Moved the pci_device_id evst_pci_tbl[] data base to a
                common location for the different OS supported.

    Introduced: 7.2.7. Per CQ54507.

    Relevance:  578xx and 57712.

 3. Problem:    CQ62397 (Cont.) - Link is not up after D2 PHY loopback test
                completes on 578xx KR.

    Change:     Set medium to HW_DEFAULT instead of EXT_LB when test D2
                completes for link to be up on 578xx KR.

    Introduced: Day One.

    Relevance:  578xx KR.

 4. Problem:    read_sfp_eeprom on 578xx doesn't read correctly for ports other
                than port0, and doesn't timeout in case SFP+ module is not
                plugged in.

    Change:     Read the EPIO controlling the BSC from the right place in the
                shmem, and add 1sec timeout on SFP+ read.

    Introduced: Day One.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ62212 - Additional support to single port device 57811.

 2. Request:    Adding support for 57840 B1.

 3. Request:    Adding MCP Shared Mem 2 data to GRC Dump.

 4. Request:    Adding MCP Version to header of GRC Dump file.

 5. Request:    Updated GRC Dump to read MCP Scratchpad by default.

Version 7.2.50 (April 02, 2012)
===============================
Internal FW 7.2.50

 1. Problem:    Opening a log file shows the ediag version on console.
                Ediag version is shown twice in the log file.

    Change:     Replaced use of "version" command when opening a file,
                with print of version string instead.

    Introduced: 7.2.13.

    Relevance:  577xx, 578xx.

 2. Problem:    CQ62266 - "device" command shows "FmvVer" instead of "FamVer",
                when VPD information exists and V0 field location is > 128
                bytes from the VPD beginning.

    Change:     Added reading of the whole VPD data when searching for the
                V0 location, not just the first 128 bytes.

    Introduced: T7.0.

    Relevance:  VPD image exists and V0 location > 128 bytes.

 3. Problem:    CQ62185 - OEM rNDC for 10GBase-T IEEE testing issue
                at forced 1G link.

    Change:     Report link up when the PHY is configured in the special
                IEEE test mode.

    Introduced: Day one.

    Relevance:  84823 and 84833 PHYs.

 4. Problem:    GRC Dump with -mcpfull on a machine with multiple 578xx and
                57712 would cause the GRC Dump to extract data from the
                wrong chip.

    Change:     Fixed changing to proper device after masking the parity.

    Introduced: T7.0.

    Relevance:  578xx and 57712.

 5. Problem:    CQ62376 - ediag output format change for "nvm dir ISCSI_B"
                caused script to break.

    Change:     Reverted the change for "nvm dir ISCSI_B" output.

    Introduced: 7.2.11.

    Relevance:  578xx and 57712.

 6. Problem:    CQ62295 - LED is still ON after the PHY got reset from fan
                failure test case.

    Change:     Added work around to configure 84833 PHY to 1Gbps and all
                LEDs off before putting it into RESET status for hardware
                limitation.

    Introduced: Day one.

    Relevance:  84833 PHY.

 7. Problem:    CQ62397 - Diag D2 PHY loopback test doesn't return link
                speed back to original speed prior to test, when completes.

    Change:     Get the current link speed at the beginning of the test.
                Set the link speed back to original speed when test completes.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

Enhancements:
-------------
 1. Request:    Add MBA image validation per device type. Verify that the
                "Vendor Flags" within the image exp_rom header are as
                expected for the current device type. Otherwise, MBA image
                upgrade will fail with a corresponding error message.

 2. Request:    CQ62377 - Limit AFEX vif type nvm cfg field (#145) to be enum
                instead of bit wise. set_niv_mode script was updated
                accordingly.

 3. Request:    CQ62212 - Add support to single port device 57811.

Version 7.2.14 (March XX, 2012)
===============================
Internal FW 7.2.xx

Fixes:
------
 1. Problem:    GRC Dump would skip the last function of the 2nd path when
                reading split registers.

    Change:     Fixed calculation of number of available functions.

    Introduced: Day 1.

    Relevance:  578xx and 57712.

 2. Problem:    Reading some PBF registers during traffic may halt the PBF.

    Change:     Exclude PBF_REG_EVEN_TXP_MEM and PBF_REG_ODD_TXP_MEM registers
                from reading via read_regs utility, used by GRC Dump.

    Introduced: Day 1.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ62189 - Enhanced PHY firmware upgrade algorithm to
                verify the proper programming into SPIROM.

    Relevance:  84823 and 84833 PHYs.

Version 7.2.13 (March 15, 2012)
===============================
Internal FW 7.2.19

Fixes:
------
 1. Problem:    CQ60042 - Flow control is not functional when OEM 57810s devices
                set to auto and evaluated via 1gb PT Module.

    Change:     Added code to handle CL37 AN when link is achieved via CL37 in
                578xx-KR.

    Introduced: T7.0.

    Relevance:  578xx-KR.

 2. Problem:    CQ62046 - No link on 57712 + 8727 designs in which the TX laser
                is controller via GPIO, after T6.0 drivers/MFW were loaded
                previously without reboot. This issue occurs since old drivers
                control the 8727 TX laser only by changing PHY register, and
                new drivers assumed this register had a default value, despite
                that this register is not actually controlling the TX laser in
                those designs. Note that this issue is not likely to occur
                because T6.0 driver don't support these kind of boards, and
                loading new drivers afterwards without reset, is not common
                practice.

    Change:     Check SW flag instead of querying the TX_DIS register.

    Introduced: T6.2.

    Relevance:  BCM8727 designs with GPIO controlling the TX laser.

 3. Problem:    CQ62061 - No link on the second port of 57711 + 84823, since
                PHY was left in reset.

    Change:     Un-reset PHY on the second port.

    Introduced: T7.0.

    Relevance:  57711+84823.

 4. Problem:    Nictest test D5 statistics test doesn't free all allocated
                memory.

    Change:     Free test D5 allocated variables.
                Load the driver only once at the beginning of the test (not
                at the beginning of each sub-case of the test), to avoid
                multiple driver load/unloads.
                Note that due to this change, the local pktsInfo statistics
                array is not cleared at the beginning of each sub-case.

    Introduced: T7.0.

    Relevance:  5771x, 578xx.

 5. Problem:    CQ62119 - D2 PHY loopback test fails when link speed set
                to 1G.

    Change:     Set ELINK configuration to 1G in case of D2 PHY loopback
                in 1G speed.

    Introduced: T7.0.

    Relevance:  578xx KR.

Enhancements:
-------------
 1. Request:    Add "mcp decode swims" command showing statistics of swappable
                images loaded and status of current one loaded in scratchpad.

 2. Request:    Add ACPI pattern configuration to wol_dump output.

 3. Request:    CQ62117 - Log ediag version string to the log file beginning.

Version 7.2.12 (March 05, 2012)
===============================
Internal FW 7.2.15

Fixes:
------
 1. Problem:    CQ61720 - MDC/MDIO access timeout message may appear on
                driver load, due to missing clock setting before resetting
                the LED.

    Change:     Relocate setting the MDC/MDIO clock before resetting the LED,
                since this operation involves access to the PHY registers.

    Introduced: 7.0.0.

    Relevance:  All.

 2. Problem:    CQ60448 - Rare case of no link due to missed interrupt may
                occur, due to a race condition between acknowledging the IGU
                via the BAR and restoring the NIG interrupt mask via the GRC.

    Change:     Make sure that the IGU ack command is completed before
                restoring the NIG interrupt mask.

    Introduced: Day 1.

    Relevance:  57712/578xx.

Enhancements:
-------------
 1. Request:    CQ61898 - Remove "nvm cfg" option #186, the MFW will always
                consume from Vmain when it is present.

    Relevance:  578x0.

 2. Request:    CQ61934  Update default Tx Equalization settings for
                SFP+ mode after analysis at all PVT corners.

    Relevance:  578xx SFP+.

 3. Request:    Remove Link Flap Avoidance nvram option (#185), i.e.:
                change it to reserved.

Version 7.2.11 (February 29, 2012)
==================================
Internal FW 7.2.15

Fixes:
------
 1. Problem:    CQ61768 - Error parsing command line option "-fnvm", if it is
                the last option.

    Change:     Do not attempt to parse a second nvm file name, if there are
                no more input arguments.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

 2. Problem:    CQ61767 - "nvm dir ISCSI_B" does not show ipv4/ipv6 version.

    Change:     Added "nvm dir ISCSI_B" version, check of ipv4/ipv6 type.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

 3. Problem:    MCP trace doesn't work correctly in serial mode for some 578xx
                boards.

    Change:     Scratchpad base wasn't calculated according to specific board
                type in serial mode. In serial mode learn board type from
                relevant register and act accordingly.

    Introduced: day 1.

    Relevance:  578xx.

 4. Problem:    CQ61680 - 57810 KR link may not come up in 1G after running
                loopback test.

    Change:     Restore the 10G KR force register to their default value before
                starting KR autoneg.

    Introduced: 7.0.0.

    Relevance:  57810-KR when connected to 1G only link partner.

 5. Problem:    Sysop test C1 fails with idle_chk errors:
                idle_chk. Error (level 1)  : AEU: P0 AFTER_INVERT_2 is not 0,
                Value is 0x20000.
                idle_chk. Error (level 1)  : AEU: MCP AFTER_INVERT_2 is not 0,
                Value is 0x20000.

    Change:     Add a delay in lm_reset_mcp() after releasing the locks.

    Introduced: 7.2.6.

    Relevance:  57712 with BC 6.2.15.

Enhancements:
-------------
 1. Request:    CQ61787 - Replace feature title in NVRAM configuration option
                no. 73 to 'AFEX'.

 2. Request:    CQ61826 - Allow programming only primary MAC address for each
                device using -num_mac command line option.

 3. Request:    CQ61844 - Remove 'nvm cfg' option 144 AFEX max bandwidth.

 4. Request:    Adjust "mcp decode scheduler" according to new thread structure
                and disaply values of new fields and statistics.

Version 7.2.10 (February 22, 2012)
==================================
Internal FW 7.2.15

Fixes:
------
 1. Problem:    CQ61666 - NCSI Pass through UDP/TCP performance degradation.

    Change:     Optimize NCSI pass-thru logic, need to add entry_count field
                for task_t type in multi_thread_def.h.

    Introduced: 7.2.1.

    Relevance:  57712 + 578xx when NCSI is enabled.

 2. Problem:    CQ61526 - D7 TOE test fails on 1G port when Mgmnt FW enabled,
                with idle_chk error:
                "NIG: interrupt 0 is active, Value is 0x1".

    Change:     1. Change reset_chip utility for 578xx, not to set/clear the
                BMAC, UMAC blocks reset bits.
                2. Change registers test for XMAC/MSTAT which reset the XMAC
                block, to set the XMAC and UMAC blocks into reset state, when
                test completes. Thus ELINK will initialize these block upon
                "mcp reset".

    Introduced: 7.2.1.

    Relevance:  57800 when Mgmnt FW enabled.

 3. Problem:    Changing "nvm cfg" option 91 "Enable SRIOV", doesn't show a
                warning about reboot required for this change to take effect.

    Change:     Added "nvm cfg" option 91 "Enable SRIOV" a warning about
                reboot required for this change to take effect.

    Introduced: Day One.

    Relevance:  57712, 578xx.

 4. Problem:    CQ61678 - System crash after running IO and pulling cable.
                Occurs since TX pipe is stalled due to missed XON indication
                (from MAC did to NIG). See related CQ56434 which fixed the
                problem for 57712.

    Change:     Force XON on NIG on link down/up.

    Introduced: T7.0.

    Relevance:  578xx.

 5. Problem:    CQ61658 - NVRAM NIV functions MAC addresses are not preserved
                upon programing a new image.

    Change:     Preserve NIV image mac addresses upon programing a new image.

    Introduced: Day One.

    Relevance:  57712, 578xx NIV mode.

 6. Problem:    1G LED stays on with cable unplugged on 57712+8727 designs.

    Change:     Restored the MODE_LED_OFF mode to explicitly keep the LEDs
                off.

    Introduced: 7.2.6.

    Relevance:  LED manipulation for 54616/18 and 8727 PHYs.

Version 7.2.9 (February 16, 2012)
=================================
Internal FW 7.2.15

Fixes:
------
 1. Problem:    "linkdump" ignores port-layout, and lacks support for 54616/8.

    Change:     Fix linkdump display for 578xx, mainly for boards with external
                PHY (84833, 54616/8), and apply the port-layout display
                correctly.

    Introduced: 7.0.0.

    Relevance:  578xx.

 2. Problem:    CQ61463 - "device" command shows MBA capability on functions in
                NIV mode, according to port configuration, instead of function
                configuration.

    Change:     Change "device" to show MBA capability on PF2 and above,
                according to MF NIV configuration.

    Introduced: Day one.

    Relevance:  57712, 578xx NIV mode.

 3. Problem:    CQ61438 - When changing NVM configuration to "Force SF" mode in
                NIV mode, an error message "Igu sb cnt is not valid value" is
                displayed.

    Change:     Do not show this error message in case of "Force SF" mode and
                function >= 2.

    Introduced: Day one.

    Relevance:  57712, 578xx NIV mode.

 4. Problem:    CQ61396 - Incorrectly report license as valid when the
                license block of the NVRAM contains all F's. The backup
                hash was initialized with all F's, causing the incorrect
                reporting.

    Change:     Initialize the backup hash to be the same as the original
                hash value.

    Introduced: 7.2.4.

    Relevance:  All.

 5. Problem:    CQ61565 D3 "External Loopback Test" fails on 57800 1G port,
                when tested in host loopback mode.

    Change:     In case of host loopback mode and 1G port, do not use
                "lmdev set_medium EXT_PHY_LB", use the default setting
                "lmdev set-medium EXT_LB".

    Introduced: T7.0.

    Relevance:  57800 1G port.

 6. Problem:    UEFI ediag environment variable $::sys(ARGS) returns invalid
                data, when "-arg" is not in the command line options.

    Change:     Initialize the arg_list array in build_env_var() procedure.

    Introduced: 7.2.2.

    Relevance:  UEFI ediag.

 7. Problem:    CQ61601 - The FW version for 84833 PHY was captured
                incorrectly. As a result, the major number is always
                reported as '1'.

    Change:     Fixed to read the correct field of the PHY register.

    Introduced: 7.2.4.

    Relevance:  84833 PHY.

 8. Problem:    CQ61465 - D3 external loopback test fail intermittently.

    Change:     Disable remote fault detection.

    Introduced: 7.2.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ58557 - Allow reading the external PHY FW from any driver
                instance even if it is not loaded since the value is stored in
                shared memory and does not require any locking or any special
                access.

 2. Request:    link read_status updates link partner's capabilities (fc,
                speed) whenever autoneg was used.

    Relevance:  All boards with phys that support autoneg.

 3. Request:    Enhance read_sfp_eeprom command to support 578xx

    Relevance:  578xx

 4. Request:    Support new MM_ACQUIRE_ETH_CON_LOCK, MM_RELEASE_ETH_CON_LOCK.

 5. Request:    Add nvm cfg bit #188: "Force FLR capability" to force FLR on
                all ports in case bit is set. If not set, per port
                configuration is taken.

    Relevance:  57712, 578xx.

Version 7.2.8 (February 06, 2012)
=================================
Internal FW 7.2.14

Fixes:
------
 1. Problem:    The "extphy" command is using the wrong mutex, in
                conflict with MCP.

    Change:     Reserve a different mutex master.

    Introduced: 7.2.4.

    Relevance:  All.

 2. Problem:    CQ60672 - iSCSI boot fails in 57810+84833 NIC, when running at
                100HD link achieved via auto-neg.

    Change:     Added configuration to set MAC controller in half duplex mode
                when PHY links up in half duplex mode.

    Introduced: Day one.

    Relevance:  578xx/848x3.

 3. Problem:    CQ61359 - Lediag compilation fails on Suse10 SP4 with error:
                "Implicit declaration of function PCI_VDEVICE".

    Change:     Added definition of PCI_VDEVICE incase it is not defined.

    Introduced: 7.2.7.

    Relevance:  577xx, 578xx.

 4. Problem:    CQ59697 - A33 MSIX test fails on device 8 when two boards
                installed in NPAR mode on XEN kernel OS.

    Change:     Clear MSIX function mask in PCI configuration register.

    Introduced: Day one.

    Relevance:  578xx.

 5. Problem:    CQ61375 - D1 fails in NIV mode.

    Change:     1. Fix in LM layer to strip vlan tag correctly: Change the
                   decision to strip the NIV default vlan, to be based only on
                   VLAN ID (The priority and CIF fields are ignored).
                2. Set special niv loopback mode in FW when needed.

    Introduced: 7.2.7.

    Relevance:  57712/578xx in NIV mode.

 6. Problem:    Idle check is missing the check for "close the gates" in PSWRQ.

    Change:     Added a check for "close the gates" in PSWRQ in idle_chk.tcl.

    Introduced: 7.0.9.

    Relevance:  57712, 578xx.

Enhancements:
-------------
 1. Request:    CQ54000 - Add NVM configuration for A1007G.

    Relevance:  578xx.

Version 7.2.7 (January 31, 2012)
================================
Internal FW 7.2.13

Fixes:
------
 1. Problem:    DMAE timeout might occur during eDiag exit.

    Change:     Halt mcp and sleep for 50 msec before resetting HW
                components to validate DMAE transaction won't be disturbed.

    Introduced: Day one.

    Relevance:  All.

 2. Problem:    CQ54507 - "driver load" fails on Suse11.1 XEN kernel when
                IOMMU is enabled, after bnx2x was loaded.

    Change:     Register eDiag as pci_driver in addition to registering as
                char device.

    Introduced: Day one.

    Relevance:  All.

 3. Problem:    CQ61135 - D5 test failure when Host to BMC feature is enabled.

    Change:     Fixed NIG_REG_P1_TLLH_NTWK_DONT_FWD_DRV_MASK multicast bit
                setting.
                (In addition to NIG_REG_P0_TLLH_NTWK_DONT_FWD_DRV_MASK).

    Introduced: Day one.

    Relevance:  577xx/578xx.

 4. Problem:    CQ61197 - GRC Dump with -mcpfull option causes device unstable
                state.

    Change:     The GRC Dump did not mask MCP parity attentions for 578xx
                Chips. The script was updated to mask MCP parity attentions
                for 578xx as well.

    Introduced: T7.0.

    Relevance:  578xx.

 5. Problem:    CQ61206 - nvm configuration options [136] "mac partition func
                fcoe node wwn mac addr" and [137] "mac partition func fcoe
                port wwn mac addr" are not preserved when programing a new
                image.

    Change:     If NVM original image includs options 136,137, then preserve
                these options upon programing a new image.

    Introduced: Day One.

    Relevance:  577xx/578xx NPAR mode only.

 6. Problem:    Warning message about excluding D7 TOE test in case there is
                no license, is shown even if test D7 is excluded from testing
                by user command.

    Change:     Do not show this warning message, incase test D7 is excluded
                from testing by user command.

    Introduced: Day One.

    Relevance:  577xx/578xx.

 7. Problem:    "led blink" command fails with error message:
                "Failed to use dg_blink_traffic_led" when driver not loaded.

    Change:     Add a clearer warning message for user when attempt to use
                "led blink" command, when driver is not loaded.

    Introduced: Day One.

    Relevance:  577xx/578xx.

 8. Problem:    Statistics test (D5) failed in NIV mode.

    Change:     Expect 4 extra bytes (of default vlan) for each TX and RX
                packet.

    Introduced: Day One.

    Relevance:  577xx/578xx NIV mode.

 9. Problem:    TOE test (D7) fails in NIV mode.

    Change:     Exclude TOE test in NIV mode, as TOE isn't supported in
                that mode.

    Introduced: Day One.

    Relevance:  577xx/578xx NIV mode.

Enhancements:
-------------
 1. Request:    Add nvram option #186 to control VAUX_SEL_L signal while Vmain
                is present.

    Relevance:  578xx.

 2. Request:    Add nvm cfg bit #187: "Prevent FCoE" to make the MFW acts as if
                the FCoE license is invalid.

    Relevance:  57712, 578xx.

 3. Request:    CQ60124 Cont. - Detect fan failure and display an error message
                during "nictest". Add fan failure check at "driver load" start.

    Relevance:  5771x, 578xx.

 4. Request:    CQ59067 - Add ability to change the XFI/SFI Tx Pre-emphasis
                settings of 578xx devices. Added utilities: "tx_demp",
                "tx_amp", "pause_wc_uc".

    Relevance:  578xx.

Version 7.2.6 (January 22, 2012)
================================
Internal FW 7.2.12

Fixes:
------
 1. Problem:    idle_chk fails on NIG attention after running linkdump script.

    Change:     Avoid reading internal PHY address register related to 5771x
                only.

    Introduced: T7.0.

    Relevance:  578xx.

 2. Problem:    CQ60940 - "nvm dump -vpd" when VPD image does not exist,
                causes segmentation fault.

    Change:     Check the return value of the function, which gets image
                information from extended dir.
                In case of unsuccessful return value, exit the "nvm dump"
                command with an error message.

    Introduced: T7.0.

    Relevance:  577xx/578xx.

 3. Problem:    CQ60924 - Linux Diag does not compile for 32-bit systems.

    Change:     Changed FW function ecore_init_fw_wrr() 64-bit division
                with 32-bit division.

    Introduced: 7.2.5.

    Relevance:  577xx/578xx.

 4. Problem:    CQ58306, CQ58507 Intermittent KR link failure after link
                enable.

    Change:     Reset RX and TX path if link is not up.

    Introduced: Day 1.

    Relevance:  57810-KR, when MFW used is older than 7.0.48.

 5. Problem:    CQ60838 - Occasionally the KR link does not come up.

    Change:     Invoke auto-neg restart at the end of the KR link configuration.

    Introduced: T7.2.

    Relevance:  578xx KR.

 6. Problem:    CQ61028 - No LED at 1G on 57712+8727 designs.

    Change:     Removed a logic error checking for a different PHY.

    Introduced: T7.0.

    Relevance:  LED manipulation for 54616/18 and 8727 PHYs.

 7. Problem:    CQ60756 - Nictest A33 intermitted failure in MF mode,
                after group C test clean up (MCP reset).
                GRC timeout on XMAC0_REG_CTRL due to XMAC access while
                still in reset.

    Change:     Fix MDIO locking during MCP reset and MCP halt.

    Introduced: T7.2.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ60699 - Disable auto-grEEEn for 84833 PHY.

    Relevance:  84833 PHY only.

 2. Request:    Add link_status output to linkdump.

    Relevance:  578xx.

 3. Request:    CQ59363 - Display the link partner FC capabilities when FC is
                not autoneg.

    Relevance:  All.

Version 7.2.5 (January 12, 2012)
================================
Internal FW 7.2.12

Fixes:
------
 1. Problem:    CQ60069 Cont. "nvm dump -a" does not insert correct padding for
                NVM image of 16Mb.

    Change:     In case of 16Mb Flash, 16 bytes padding is required, instead
                of 8 bytes padding.

    Introduced: Day one.

    Relevance:  577xx/578xx.

 2. Problem:    CQ60604 - D05 test failure incase NCSI Host-to-BMC
                feature is enabled.

    Change:     Fixed NIG_REG_P0_TLLH_NTWK_DONT_FWD_DRV_MASK multicast
                bit setting.

    Introduced: Day one.

    Relevance:  577xx/578xx.

 3. Problem:    CQ60781 - "vpd write" enables writing values with length
                which exceeds the maximum allowed for each field.

    Change:     Added validity checks of the requested values lengths to
                "vpd write" command.

    Introduced: 7.0.1.

    Relevance:  577xx/578xx.

 4. Problem:    CQ60843 - lediag hangs when performing two automated
                "nvm -F upgrade" via script.

    Change:     Fixed "mcp reset" wait loop to acquire all HW locks.

    Introduced: 7.2.4.

    Relevance:  577xx/578xx.

 5. Problem:    CQ60689 - Nictest A30 "Block EMAC Register Test" may fail
                in NPAR mode. Some registers read values are not
                as expected.

    Change:     Fixed "prep_for_test" utility, reset the chip without
                resetting the MCP, so MCP is halted during the test.

    Introduced: 7.2.1.

    Relevance:  577xx/578xx.

Version 7.2.4 (January 04, 2012)
================================
Internal FW 7.2.11

Fixes:
------
 1. Problem:    SYSOP test D8 "Second External LB Test" fails on T0000G.

    Change:     Test D8 (instead of D6) excluded from testing if there
                is no second external PHY.

    Introduced: 7.2.0. upon changing TOE test number from D5 to D7.

    Relevance:  SYSOP mode only.

 2. Problem:    CQ60496 - "ext_phy_fw version" doesn't show version info.

    Change:     The common PHY init function got split in v7.2.3.
                Added code to invoke the second half, which captures the
                version info. Also, use a different PHY register to collect
                the version info for this PHY.

    Introduced: 7.2.3.

    Relevance:  84833 PHY only.

 3. Problem:    The "extphy" command holds up MDIO mutex IF it fails
                unexpectedly (e.g. user provides incorrect arguments).
                This could cause all software and firmware that need
                the mutex to mis-behave (e.g. failing to configure and
                query the PHYs).

    Change:     Catch the failure to release the mutex.

    Introduced: 7.0.56.

    Relevance:  All.

 4. Problem:    Cannot set nvm cfg by board type.

    Change:     Fix TCL script.

    Introduced: 7.2.3.

    Relevance:  All.

 5. Problem:    XMAC might be accessed while it is still in reset, after
                performing mcp reset.

    Change:     Acquire all HW locks as a new master (named mcp_reset) before
                performing mcp reset, to validate mcp reset is not performed
                in the middle of another operation such as resetting the MAC.

    Introduced: Day one.

    Relevance:  All.

 6. Problem:    A potential loophole in license validation is found.

    Change:     Skip license validation on backup MAC address if invalid.

    Introduced: 6.4.x (CQ50653).

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ60109 - Remove I_B_CPRG image in NVRAM when upgrading to
                ISCSI_BOOT version 7.0.0 and above.

 2. Request:    CQ59203 - Add to "nvm prg" option to preserve end-user
                definable parameters. Usage:
                nvm prg 0 -skip_options <option numbers e.g. 2,55,73> filename
                or
                set options <option numbers e.g. 2,55,73>
                nvm prg 0 -skip_options $options filename.

 3. Request:    Add TCL script which shows which drivers are loaded and which
                ones are the PMF, by reading shmem function mailbox.
                Usage: show_pmf.

 4. Request:    CQ59755 - Added a universal license support for an OEM.

    Relevance:  578x0.

Version 7.2.3 (December 20, 2011)
=================================
Internal FW 7.2.10

Fixes:
------
 1. Problem:    84833 PHY firmware size has grown to cause timeout
                on initialization. This leads to PHY misconfiguration
                due to PHY register clobbering between software and the
                PHY firmware.

    Change:     Extend firmware initialization timeout period for all ports.

    Introduced: Day one.

    Relevance:  84833 PHY designs with a single SPIROM

 2. Problem:    CQ59787 - On some UEFI systems, error message is seen upon
                loading ediag_ia64.efi:
                "assertion "tmp != NULL" failed: file sys\open.c"

                Some EFI bios have environment size over 44K, which exceed
                EFI tool kit boundary of 4K, thus causing incorrect device
                mapping table.

    Change:     Increase the MAX_ENVIRONMENT_DATA to 64K in env.c file in
                \Tools\EFI_Toolkit_2.0\lib\libc\efi

    Introduced: Day one.

    Relevance:  UEFI ediag IA64 running from USB key only.

 3. Problem:    mcp access may failed due to timeout.

    Change:     Change waiting method from count to 1 second timeout.

    Introduced: MFW 7.2.2.

 4. Problem:    CQ60236 - Possible false positive idle check failure while
                performed under traffic on 578x0 B0: "ERROR UCM: FIC1_INIT_CRD
                is not 64".

    Change:     On 578x0 B0 the value of FIC1 can be different than 64 under
                traffic. The test was updated to reflect that.

    Introduced: Day one.

    Relevance:  578x0 B0.

 5. Problem:    CQ60069 Cont. "nvm dump -a" does not insert correct padding for
                NVM image of 16Mb.

    Change:     Fixed check is 16Mb Flash, use buffer size of 512 bytes instead
                of 256 bytes.

    Introduced: Day one.

    Relevance:  577xx/578xx.

Enhancements:
-------------
 1. Request:    84833 PHY FW team recommended a few changes when
                configuring the PHY: (1) Use super isolate feature
                when the PHY is no longer use (e.g. unloading driver).
                (2) Bring PHY out of super isolate mode as the last
                step of initialization.

    Relevance:  84833 PHY only.

 2. Request:    add option in nvm_cfg to ignore specific fields according to
                specific attributes (tcl variables). If one marks "XYZ" is the
                excluded attribute of specific field, then if tcl variable
                "::current(nvmcfg_ignore_XYZ)" will be set to 1 this field will
                be ignored.

 3. Request:    Add Link Flap Avoidance nvram option only, visible only to
                specific OEMs only.

 4. Request:    CQ60124 - Detect fan failure and display an error message upon
                power up.
                In BATCH and SYSOP mode, in case of fan failure do not run the
                default set of tests.

Version 7.2.2 (December 6, 2011)
==================================
Internal FW: 7.2.9

Fixes:
------
 1. Problem:    CQ59813 - UEFI ediag fails to parse -arg "string1 string2".
                UEFI ediag "argv" translates the string into two separate
                strings, thus shows error on string2 as unknown option.

    Change:     Concatenate the following strings after "-arg" into one
                string.

    Introduced: Day one.

    Relevance:  UEFI ediag only, using command line option "-arg".

 2. Problem:    The script utilities "set_niv_mode" and "set_npar_mode" don't
                configure FCoE wwn/wwp MAC addresses correctly
                (to be 8 bytes long).

    Change:     Adjust scripts accordingly.

    Introduced: 7.1.0.

    Relevance:  577xx/578xx.

 3. Problem:    CQ60069 "nvm dump -a" does not insert correct padding for
                NVM image of 16Mb.

    Change:     Fixed the function which appends 8 bytes for every buffer.
                In 16Mb Flash, need to use buffer size of 512 bytes instead
                of 256 bytes.

    Introduced: Day one.

    Relevance:  577xx/578xx.

Version 7.2.1 (November 22, 2011)
==================================
Internal FW: 7.2.7

Fixes:
------
 1. Problem:    "nictest" might fail since mcp isn't halted upon "mcp halt"
                command, when using MFW 7.2.0 and above.

    Change:     Fixed "mcp halt" function to set the halt bit before checking
                halt status in each iteration of the busy loop.

    Introduced: MFW 7.2.0

    Relevance:  577xx/578xx

Enhancements:
-------------
 1. Request:    Add new command "mcp decode scheduler" to show detailed
                status of the mcp scheduler.

Version 7.2.0 (November 15, 2011)
==================================
Internal FW: 7.2.7

Fixes:
------
 1. Problem:    driver load when no MFW installed causes debug break.

    Change:     Replaced debug break incase lm_chip_init failed with
                debug message instead.
                Fixed diag error message in this case.

    Introduced: 7.0.0.

    Relevance:  577xx/578xx when no MFW installed.

 2. Problem:    CQ59611 - C10 PRBS test occasionally fails.

    Change:     Avoid enabling driver interrupts when test finish.

    Introduced: 7.0.38

    Relevance:  578xx

Enhancements:
-------------
 1. Request:    Use 578xx-B0 built-in MDIO access work-around instead of
                578xx-A0 work-around

 2. Request:    Change TOE test number in SYSOP mode to D7, to be similar
                to engineering mode.

 3. Request:    CQ58064 - Add to "nvm cfg" option which maps setting to actual
                bit offset in NVRAM and Shared Memory.
                Usage: nvm cfg -offset <option>=
                       nvm cfg -offset -shmem <option>=


Version 7.0.200 (November 08, 2011)
==================================
Internal FW: 7.2.7

Fixes:
------
 1. Problem:    CQ59421 - Nictest on 57800 with NPAR enabled fails with
                debug break on devices 5,6.
                The "mcp halt" command attempts to access device 7, which does
                not exist, in order to release NVM lock split register.

    Change:     Fixed dg_select_other_device() support for 4ports, not to
                access wrong device.

    Introduced: 7.0.30

    Relevance:  57800 with NPAR enabled.

 2. Problem:    Nictest test A33 on 57800 with NPAR enabled fails on device 5.

    Change:     Fixed "mcp halt" code which returns back to the current path,
                after releasing NVM lock on the other path.

    Introduced: 7.0.30

    Relevance:  57800 with NPAR enabled.

 3. Problem:    84833 PHY FW command handler interface requires further
                refinement.

    Change:     Made further adjustments and consolidated the command
                handler routine (in anticipation for other commands
                besides auto-grEEEn)).

    Introduced: 7.0.0.

    Relevance:  84833 PHY.

 4. Problem:    CQ59497 - Segmentation fault incase no HUT in system.

    Change:     Do not attempt to run tests incase no HUT in system.
                Fixed error message to a more clear message.
                Re-named ipv6 test name, since "test" attempts to run IPv6 test.
                Changed ipv6 test to exit incase no device installed.
                Changed nictest_init error message incase no HUT installed.

    Introduced: 7.0.0.

    Relevance:  577xx, 578xx.

 5. Problem:    Debug command "extphy" doesn't work for 54616 PHY. It
                keeps returning 0xffff.

    Change:     Update the embedded script to include 54616.

    Introduced: T7.0, when 54616 PHY type is introduced (in addition to
                54618SE).

    Relevance:  54616 PHY, for debug use only.

 6. Problem:    PHY tcl commands may cause DOS diag to halt during link
                operation.

    Change:     Disable driver interrupt before taking MDC/MDIO lock

    Introduced: 7.0.36.

    Relevance:  577xx, 578xx.

 7. Problem:    nvm dir doesn't show full SWIM version if build number
                length is more than 2 digits.

    Change:     Increase maximum version string size to 16 chars.

    Introduced: day one.

    Relevance:  577xx, 578xx.

 8. Problem:    D7 TOE test failure on device 2 on low memory setup, due to
                not enough memory.

    Change:     Fixed memory leak found when using "nvm cfg <op>=".
                Added TCL command "nvm_free_structs" to be used to free
                nvm_config, shmem_config and other structures upon use
                of "nvm cfg <op>=".

    Introduced: 7.0.53

    Relevance:  577xx, 578xx.

Enhancements:
-------------
 1. Request:    CQ59174 - initialize NPAR image values if image exists and
                empty.

 2. Request:    CQ59466 - Add new command line option -chkled for checking
                LED color feature during external loopback test.

    Relevance:  SYSOP mode only.



Version 7.0.56 (October 25, 2011)
==================================
Internal FW: 7.2.4

Fixes:
------
 1. Problem:    CQ59330 - D2 PHY test fails when runs after D1 test on
                57710 chip.

    Change:     Changed the sequence in chip_unload utility:
                First reset the RX strip CRC register settings, then
                unload the driver.

    Introduced: 7.0.22

    Relevance:  57710.

 2. Problem:    CQ58884 - possible link issues after unload/load of 1G
                copper ports.

    Change:     Close RX NIG in delay time after resetting the MAC.

    Introduced: T7.0.

    Relevance:  578xx.

 3. Problem:    MCP decode shmem doesn't show every fields in dev info.

    Change:     Add new fields introduced in past months.

    Introduced: T7.0.

    Relevance:  578xx.

 4. Problem:    Some of the diagnostics debug commands may clobber the PHY
                state. No MDIO lock is used in these commands.

    Change:     Designated a lock client for diagnostic tool to use,
                ensuring mutex while accessing PHY MDIO.

    Introduced: Day 1.

    Relevance:  57711E, 57712, and 578x0

 5. Problem:    CQ58990 - KR link occasionally comes up at 1G when 10G is
                expected. This is exposed only when a previous software
                entity (e.g. MFW, prior to OS driver loading up) that owns
                the KR PHY left it at 1G.

    Change:     Keep auto-neg disabled while configuring the capbility
                advertisement. Re-enable it after configiuration is done.

    Introduced: Day One

    Relevance:  578xx blade designs.

 6. Problem:    Nictest C10 test fails with MDIO lock timeout on 578xx with
                NPAR enabled and MFW 7.0.56.

    Change:     Change "mcp halt" implementation to release HW locks as well.

    Introduced: Using MFW 7.0.56 and above.

    Relevance:  578xx both MFW 7.0.56 and above.

Enhancements:
-------------
 1. Request:    Add nvm retain address decoding in "mcp decode shmem".

 2. Request:    CQ59191 - Added an universal license support for an OEM.

 3. Request:    Incase of DbgBreak, exit with error code 1.


Version 7.0.55 (October 17, 2011)
==================================
Internal FW: 7.2.4

Fixes:
------
 1. Problem:    Traffic LED blink rate for 10GBase-T designs is a bit slow.

    Change:     Adjust the slow clock counter in the PHY to increase the
                blink rate.

    Introduced: T7.0: a fix for CQ56846

    Relevance:  84823 and 84833 PHYs

 2. Problem:    CQ58996 - After 20 iterations of reboot test, adapter does not
                dcbx-sync with switch.

    Change:     Perform hard reset to the XMAC during link establishment to
                clear possible left-overs.

    Introduced: T7.0

    Relevance:  57810/57800

 3. Problem:    CQ59197 - "nvm prg 0" fails on empty NVM.

    Change:     The function which preserves ISCSI/FCOE configuration,
                should not return failure incase extended dir does not exist,
                as is the case when NVM is empty.

    Introduced: 7.0.32

    Relevance:  All

Enhancements:
-------------
 1. Request:    Add LED functionality to 54618SE PHY based boards.

 2. Request:    Put 84833 PHY in super isolate mode regardless of the
                strapping pin. The PHY stays in this mode until driver
                is loading up.

    Relevance:  84833 PHY only.

 3. Request:    Add MF cfg decoding "mcp decode npar".


Version 7.0.54 (October 11, 2011)
==================================
Internal FW: 7.2.4

Fixes:
------
 1. Problem:    A36 PGLUE_B registers test fails if runs after grcDump with:
                "PGLUE_B_REG_PGLUE_B_PRTY_MASK reset value different than
                expected".

    Change:     Do not check PGLUE_B_REG_PGLUE_B_PRTY_MASK at A36 test, since
                PGLUE_B block is not reset during chip reset.

    Introduced: T7.0

    Relevance:  5771x and 578xx.

 2. Problem:    CQ58581 - Test A33 fails with idle_chk error:
                "AEU: P0 AFTER_INVERT_3 is not 0, Value is 0x2860000"

    Change:     Fixed idle_chk mask of this register, since SMB event
                and SW timers attn_2 are allowed.

    Introduced: Using latest T7.0 MFW.

    Relevance:  5771x and 578xx.

 3. Problem:    CQ 58404 - ocdata utility failed with "Segment Fault"

    Change:     Changed hmem_map_cmd() to return two 32 bit addresses to TCL
                correctly instead of single 32 bit address, causing high
                address to get lost in 64 bit Linux environment.

    Introduced: Day one.

 4. Problem:    If MFW upgrade fails due to version validation (trying to
                upgrade to old/same version without -F flag), active SWIMs
                are deleted.

    Change:     Delete SWIMs only after validating new version is valid.

    Introduced: 7.0.20 (when shadow feature was added).

    Relevance:  5771x, 578xx.

 5. Problem:    On 1G copper ports, the RX UMAC is not closed to prevent
                arrival of partial segments during link reset process.

    Change:     Close the UMAC and the NIG RX during link reset process.

    Introduced: T7.0

    Relevance:  578xx.

 6. Problem:    Traffic blink rate LED is too fast.

    Change:     Adjust the blink rate to 578xx clock.

    Introduced: T7.0

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    Add support for new HW_SET image created from input text file.
                The input text file includes set of requested HW commands:
                Registers address, data and operation to perform.
                Usage: nvm upgrade -hw_set hw_set.txt

                Add support for dumping HW_SET image into text file.
                Usage: nvm dump -hw_set hw_set.txt

    Impact:     MFW will read the HW_SET image and perform the requested
                HW commands (registers operations).

 2. Request:    Add command line option "-fmfw" to upgrade MFW image, also
                to be supported by user ediag.


Version 7.0.53 (September 27, 2011)
==================================
Internal FW: 7.2.4

Fixes:
------
 1. Problem:    CQ58439 Cont. - Nictest C3 "CAM Search test" sometimes fail
                on 57712.

    Change:     Re-fixed setting of xSEM_REG_CAM_TM registers to 0x32 to 57712
                device only.

    Introduced: 7.0.31.

    Relevance:  57712.

 2. Problem:    CQ55942 - Ediag "nictest" fails C05 GRC test on 57710 device.

    Change:     Do not access MISC_REG_AEU_GENERAL_MASK on 57710 device, it
                does not exist in this device.

    Introduced: 7.0.25.

    Relevance:  57710.

 3. Problem:    Test A15 PXP registers test fails if runs after grcDump,
                with PXP_REG_PXP_PRTY_MASK reset value different than
                expected.

    Change:     Do not check PXP_REG_PXP_PRTY_MASK at A15 test, as PXP
                block is not reset during chip reset.

    Introduced: T7.0

    Relevance:  5771x and 578xx.

Enhancements:
-------------
 1. Request:    Remove global variables such as nvm_config, shmem_config
                from common NVM files.

    Relevance:  nvmcfgT::nvm_load command returns a list of variables:
                {nvm_config shmem_config mac_partition niv_config
                niv_profiles cfg_ext_shared}

                nvmcfgT::nvm_store command input arguments:
                <nvm_config> <shmem_config> <mac_partition> <niv_config>
                <niv_profiles> <cfg_ext_shared>

                nvmcfgT::nvm_set_bits command input variables:
                <nvm_config> <shmem_config> <offset> <size> <value>

                nvmcfgT::nvm_get_bits command input variables:
                <nvm_config> <offset> <size>

 2. Request:    Add to read_regs_all utility the option -split_regs which reads
                only split registers.

 3. Request:    GRC Dump script was updated to use read_regs_all -split_regs
                in order to output split registers.
                GRC Dump was added optional argument "-splitfull" to dump all
                registers including split registers.

Version 7.0.52 (September 20, 2011)
==================================
Internal FW: 7.2.1

Fixes:
------
 1. Problem:    CQ58561 - "nvm prg 0" does not preserve iSCSI boot parameters
                on 578xx ports 3 and 4.

    Change:     Added support for I_B_CFG3, I_B_CFG4 images which are in
                the extended dir.
                Unite the implementation for preserving iSCSI boot parameters
                with the function for preserving FCoE boot parameters.

    Introduced: Day One.

    Relevance:  57840, 57800.

 2. Problem:    CQ58635 - lediag fails to compile on i386 platform, with
                ediag_compat.c error at ediag_atomic_long_read().

    Change:     Define ediag_atomic_long_read() differently for 32bit
                platform, use atomic_read().
                For 64bit platforms, use atomic_long_read().

    Introduced: 7.0.23 when mm.c changes were made.

    Relevance:  32bit platforms.

Enhancements:
-------------
  1. Request:    Add FCoE WWN port/node MAC prefixes to nvm config.
                 Added fields 183 & 184.

Version 7.0.51 (September 14, 2011)
==================================
Internal FW: 7.2.1

Fixes:
------
  1. Problem:   Nvm upgrade wasn't functional on hidden devices.

    Change:     If chip number read from DID env var is zero (as it is on
                hidden devices), read it from env var DEFAULT_DID.

    Introduced: Day One.

    Relevance:  57712 + 578xx.

 2. Problem:    Forced 100M speed cannot pass traffic with 578xx+84833.

    Change:     Configure the Warpcore to SGMII auto-neg when interfacing
                the 84833 PHY.

    Introduced: Day One.

    Relevance:  578xx + 84833 PHY only, PHY FW v1.27 is required.

 3. Problem:    Cannot establish link with 84833 PHY using PHY FW v1.27.

    Change:     The FW has been changed to fully support superisolate mode.
                That requires the PHY initialization sequence to change.

    Introduced: Day One.

    Relevance:  84833 PHY, PHY FW v1.27 is required.

 4. Problem:    CQ58439 - Nictest C3 "CAM Search test" sometimes fail on
                57712 2'nd device with USEM CAM done result 1 instead of
                expected value 3.

    Change:     Add setting of xSEM_REG_CAM_TM registers to 0x32 prior to
                enabling CAM_BIST_EN registers.

    Introduced: Day One.

    Relevance:  57712 device 2.

 5. Problem:    CQ58431 - ediag overwrites iSCSI boot parameters of second
                device and FCoE boot parameters when programing NVM.

    Change:     Add support for preserving iSCSI boot parameters for devices
                higher than the first device.
                Add support for preserving FCoE boot parameters, which was
                missing.

    Introduced: Day One.

    Relevance:  5771x, 578xx.

Enhancements:
-------------
  1. Request:    Added linkdump command for E3 + 84833/84823.

Version 7.0.50 (September 7, 2011)
==================================
Internal FW: 7.2.1

Fixes:
------
  1. Problem:   CQ58154 - Nictest C8 intermitted failure with Assertion:
                "failed: function acquire_nvram_lock"

    Change:     Fixed "mcp halt" implementation, release NVM lock bits on
                both paths, since NVM lock register is a split register.

    Introduced: Day One.

    Relevance:  57712.

 2. Problem:    CQ58144 - Exception fault on uEFI diag upon "nvm dir BC1",
                due to attempt to set cpuName string from non-initialized
                agent variable.

    Change:     In "nvm dir" implementation for BC1 set agent variable to
                CODE_IMAGE_AGENT_MCP.

    Introduced: 7.0.27

    Relevance:  5771x, 578xx.

 3. Problem:    VPD config file not loading correctly.

    Change:     Add error message to remind user of mandatory newline at end of
                config file.

    Introduced: Day One

    Relevance:  5771x, 578xx.

Enhancements:
-------------
 1. Request:    Remove Timer 4 (id 3) sanity check because it is being
                used by temperature statistic reporting now.

 2. Request:    Fix byte_cnt field in extended dir in case it is corrupted.


Version 7.1.0 (August 30, 2011)
===============================
Internal FW: 7.0.25

Fixes:
------
 1. Problem:    CQ56294 - Incorrect Remote fault detection may lead to link
                down on 5771x fiber devices.

    Change:     Fix LSS fault mechanism to detect remote fault and transmit
                local fault through the BMAC. This change requires leaving the
                BMAC out of reset in case link of 10G goes down

    Introduced: 7.0.0

    Relevance:  5771x-fiber devices (8706/8726/8727), 10G only.

 2. Problem:    "mcp halt" -check_nvm_lock option does not halt the MCP.

    Change:     The value written to MCP_REG_MCPR_CPU_MODE, was over written
                by the value read from NVM lock check.

    Introduced: 7.0.24

    Relevance:  All.

 3. Problem:    CQ57349 - The nictest D04 (LSO Test) failed in NPAR mode.

    Change:     There was a wrong register initialization in the Parser block.

    Introduced: 7.0.11

    Relevance:  578xx B0 NPAR mode.

 4. Problem:    CQ57362 - The nictest D04 (LSO Test) occasionally fails when
                management firmware enabled or WoL enabled in NVM.
                This test uses XMAC loopback mode, and once it fails, the XMAC
                cannot pull packets from the NIG, causing a NIG drain event
                from the MFW side.

    Change:     Un-reset the appropriate Warpcore lane to provide the clock
                for the XMAC.

    Introduced: 7.0.0

    Relevance:  578xx.

 5. Problem:    The GPHY ports are not completely powered down on
                "driver unload" if the GPHYs have no external pins to
                bring them to reset state. As a result, their link
                partner may still see link.

    Change:     Put the GPHY in low power mode.

    Introduced: 7.0.0

    Relevance:  T0000G boards.

 6. Problem:    wol_dump script doesn't show correct status in NPAR mode.

    Change:     Fix wol_dump script.

    Introduced: 7.0.0

 7. Problem:    Fixed PCIE microcode programming for E3 B0.

    Change:     This image needs to be 8-byte aligned.

    Introduced: Day one.

    Relevance:  578xx

 8. Problem:    CQ57368 - nictest C10 (PRBS) occasionally fail when management
                or WoL is enabled.

    Change:     Halt MCP during the test.

    Introduced: 7.0.0

    Relevance:  578xx.

 9. Problem:    CQ57497, CQ57505, CQ57381 - when upgrading MFW image, one of the
                extended dir images might disappear.

    Change:     Check if image exists when upgrading extended dir image, and
                don't count on parameter supplied to the function (as image
                might be deleted between those two events).

    Introduced: T7.0.24 (when fix #3 in release notes was added).

    Relevance:  57712 + 578xx.

10. Problem:    CPU display of CFG_SHARED image in "nvm dir" is HOST instead
                of MCP.

    Change:     Fixed CFG_SHARED image_table entry agent to MCP.

    Introduced: Day one.

    Relevance:  578xx.

11. Problem:    All nictest loopback traffic tests failed in NPAR-SD mode.

    Change:     Notify link up in NPAR-SD mode immediately if medium type used
                is loopback (and don't wait for VIF_SET request like in non
                loopback mode). In addition, set chip to NPAR-SI mode in that
                case.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

12. Problem:    CQ57605 - shadow feature is disabled when MFW version 7.1.x
                is burned.

    Change:     Fix logics checking which MFW versions support shadow feature.

    Introduced: 7.0.20 (when shadow feature was added).

    Relevance:  57712 + 578xx.

13. Problem:    CQ54507 - nictest failure on XEN kernel of Suse 11.1 SPP1 O.S.
                pci_enable_msix() fails with "map irq failed".

    Change:     Work in INTA mode on XEN kernel.

    Introduced: Day one.

    Relevance:  5771x + 578xx.

14. Problem:    "idle_chk" access registers, even if block is in reset state.

    Change:     If block is in reset state, do not run the idle checks on
                this block's registers.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

15. Problem:    GRC_dump with the "-mcpfull" parameter causes parity attention from mcp.

    Change:     Mask parity attentions for MCP when "-mcpfull" parameter is used.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

16. Problem:    CQ57736 - A30 test fails when management fw is enabled, with
                "Failed to halt the mcp".

    Change:     Removed from A30 test the second redundant call to "prep_for_test",
                which attempts to halt the MCP, when already halted.
                Fixed "mcp halt" implementation, don't attempt to halt the MCP if
                it is already halted.
                Changed the sequence in "mcp halt", first free NVM lock, then
                halt the MCP.

    Introduced: 7.0.24.

    Relevance:  5771x, 578xx.

17. Problem:    CQ57250 - The LED Link light does not turn on at 1Gb/s speed

    Change:     Adjust elink_set_led to allow for correct LED behavior.

    Introduced: Day one.

    Relevance:  578xx with direct connection.

18. Problem:    Upgrading images might fail due to "not enough room" even if
                there is enough room in NVM.

    Change:     1. Fix wrong calculation of total bytes in extended dir image
                   (MFW1 was removed twice).
                2. Take into consideration SWIMs of group B for the swim byte
                   count in is_enough_room function.

    Introduced: 7.0.24 (when shadow feature was added).

    Relevance:  57712 + 578xx.

19. Problem:    CQ57843 ediag allows upgrading L2T firmware with MBA image.

    Change:     Incase of single image with no append header, do not allow
                upgrading -l2t, -l2c, -l2u or -l2x image.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

20. Problem:    CQ56820 - XMAC loopback (nictest -D1) may fail due to timing
                issue related to the CORE loopback type used.

    Change:     Change XMAC loopback to local line loopback.

    Introduced: T7.0.

    Relevance:  578xx.

21. Problem:    Running "nvm dir" with another joined command (e.g. "nvm dir; log close")
                fails to display NVM images.

    Change:     Replaced "nvm dir" implementation use of Tcl_AppendStringsToObj() and
                Tcl_SetObjResult() with use of Tcl_WriteChars(STDOUT) and
                Tcl_Flush(STDOUT).

    Introduced: 7.0.16.

    Relevance:  5771x and 578xx.

22. Problem:    CQ57875 - Fail to upgrade external PHY firmware.

    Change:     Disable periodic link function during upgrade process.

    Introduced: 7.0.26.

    Relevance:  5771x, 578xx.

23. Problem:    CQ57738, CQ57719, CQ55158 - Remote fault detection occasionally
                causes link issues, and traffic problems.

    Change:     Remove remote-fault detection for T7.0.

    Introduced: In 1.70.00.

    Relevance:  Fiber ports.

24. Problem:    MFW upgrade might fail due to "not enough room" even if there
                is room for it.

    Change:     Avoid wrong calculation of old MFW1 size: MFW1 was calculated
                from bootstrap and extended dir and was removed only once. It
                should be removed twice as it will be overwritten by the new
                image.

    Introduced: day 1 (since MFW was replacing BC).

    Relevance:  5771x, 578xx.

25. Problem:    The sysop option "-fmac" does not support MAC addresses per port
                different than 2, using "-num_mac <mac addresses per port>".

    Change:     Added to fmac implementation support to mac_per_port variable,
                which holds the number of mac addresses per port.
                Increment the next port MAC address by mac_per_port.

    Introduced: Day one.

    Relevance:  5771x, 578xx.

26. Problem:    CQ57875 - Fail to upgrade external PHY firmware.

    Change:     Disable periodic link function during upgrade process.

    Introduced: 7.0.26.

    Relevance:  5771x, 578xx.

27. Problem:    Forced half duplex link may not be supported.

    Change:     Clear full duplex bit in Warpcore when configuring forced
                link.

    Introduced: Day 1.

    Relevance:  578x0 + 84833, no exposure to 54616S/18SE PHY because it is
                configured as SGMII interface, not XFI.

28. Problem:    CQ56846 - 84833 PHY has no traffic LED on 10G.

    Change:     Enable LED stretch on a different register offset for 84833.

    Introduced: Day 1.

    Relevance:  84833 PHY.

29. Problem:    CQ56813 - 84833 PHY can't link up at forced 100M

    Change:     PHY FW requires setting auto-neg advertisement even at
                forced link mode.

    Introduced: Day 1.

    Relevance:  84833 PHY.

30. Problem:    84833 can't link up at 10G after the link went down from
                sub-10G.

    Change:     Re-enable 10G advertisement on every driver load instead of
                relying on hardware default.

    Introduced: Day 1.

    Relevance:  84833 PHY.

31. Problem:    84833 PHY FW command handler interface changed (needed for
                (auto-grEEEn and RJ45 pair swap).

    Change:     Made register offset adjustments to accommodate the new
                interface.

    Relevance:  84833 PHY.

32. Problem:    Driver is not loaded correctly when AutoGrEEEn is enabled.

    Change:     Ignore nvram settings of AutoGrEEEn, and disable it.

    Introduced: Day one.

    Relevance:  578xx + 84833.

Enhancements:
-------------
 1. Request:    Change "mcp halt" to check NVM lock before halting MCP.
                To run without this check, use "mcp halt -no_nvm_lock_check".

    Relevance:  All.

 2. Request:    Added 54616 PHY support.

    Relevance:  54616 PHY.

 3. Request:    Added temperature reporting config field in NVRAM for an OEM.

    Relevance:  578xx only.

 4. Request:    Add remote fault check to linkdump script.

    Relevance:  All.

 5. Request:    Updated eDiag manual document with new Shadow SWIM feature.

    Relevance:  All.

 6. Request:    Make "mcp decode shmem" to dump shmem even if MFW and
                decode_shmem is not in sync.

    Relevance:  All.

 7. Request:    Add remote fault link detection.

    Relevance:  Fiber ports.

 8. Request:    Implement external PRBS nictest (E2) for 578xx.
                prbstest -l EXTERNAL [-patnum 7/15/23/31]

    Relevance:  578xx.

 9. Request:    Update autogreeen_stats function to return statistics as well
                for testing purposes.

    Relevance:  EEE enabled PHYs.

10. Request:    Add to "nvm upgrade" support of CCM image.

    Relevance:  57712 + 578xx.

11. Request:    CQ57634 - added nvm cfg field 182 indicating whether swim
                shadow feature is supported. If not, SWIMs will always be
                stored in original group ("Group A").

    Relevance:  57712 + 578xx.

12. Request:    Change FCoE wwn port & node MAC addresses in NPAR and NPAR-SD
                images to be 8 dwords long.

    Relevance:  57712 + 578xx.

13. Request:    Enable FEC (Forward Error Correction) on 57810-KR


Version 7.0.24 (July 25, 2011)
=============================
Internal FW: 7.0.24

Fixes:
------
 1. Problem:    The utility "igu_dump_fifo" doesn't support 578xx.

    Change:     Enabled "igu_dump_utility" on 578xx as well.

    Introduced: Day one.

    Relevance:  578xx.

 2. Problem:    Spelling error in idle check.

    Change:     Successfully is spelled with double L.

    Introduced: Day one.

    Relevance:  All.

 3. Problem:    MFW upgrade might fail due to "not enough room".
                Failure bug is exposed only if there is invalid image, such as
                invalid MFW2_A on 57712 devices.

    Change:     Delete all MFW1/2 images before performing MFW upgrade (after
                realizing there is enough room for the upgrade).

    Introduced: 7.0.20 (when shadow feature was added).

    Relevance:  All.

 4. Problem:    CQ56687 - Traffic LED does not blink under multiple
                OSes and dim.

    Change:     Enable LED blink and set rate.

    Introduced: 7.0.0

    Relevance:  57712 + 8727.

 5. Problem:    "vnic_cfg -mode m" doesn't change per port e1hov tag value used
                for DCC protocol.

    Change:     Change per port e1hov value to non default value.

    Introduced: 7.0.0

    Relevance:  57712 + 578xx.

 6. Problem:    C10 test fails on 578xx-B0 in 2-port mode.

    Change:     Since the purpose of this test is to check PRBS over 4 lanes,
                before running the test, set port mode to 4-port, and restore
                the mode when test completes.

    Relevance:  578xx-B0.

 7. Problem:   CQ57129 - UEFI diag: Nictest C8 test fails with debug break
               "Cannot get access to NVRAM Interface".
               The sequence which causes the failure is "reset_chip" (includes
               "mcp reset"), then "mcp halt" and attempt to access NVM.

    Change:    Add to "mcp halt" the option "nvm_lock_check", which waits
               until NVM lock is free, before halting the MCP.

    Relevance: All.

    Introduced: Failure is shown since use of MFW 7.0.26.

 8. Problem:    No flow-control on 578xx when link is up at 1G and below.

    Change:     Add pause functionality to UMAC.

    Introduced: 7.0.0

    Relevance:  578xx


 9. Problem:    Nictest D1 test fails with "can't read linkSpeed: no such
                variable". Failure is exposed when read link speed from
                "driver link_state" is unknown.

    Change:     Add to the utility "is_high_Gmac" input argument "linkSpeed".

    Introduced: 7.0.22

    Relevance:  All.

 10. Problem:   CQ57265 - Attempt to upgrade MFW to the same MFW version
                without -F (force) flag, then exit ediag causes error:
                "Shmem Signature not present MCP is not up!!".

    Change:     Do not clear bootstrap in the function which deletes BC & NCSI,
                unless BC is really deleted.

    Introduced: 7.0.20 (Since fix of CQ56594).

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out
                to prevent current leakage.

    Relevance:  578xx.

 2. Request:    Add debug scripts to change board mode to NPAR and NPAR-SD mode
                in all relevant nvm fields, even if not all functions are
                currently exsposed through the PCI.
                Name of new functions: "set_niv_mode" and "set_npar_mode"
                optional parameters: functions in which FCoE will be enabled.

    Relevance:  57712 and 578xx.

 3. Request:    Add linkdump script for 578xx.

    Relevance:  578xx.

Version 7.0.23 (July 18, 2011)
=============================
Internal FW: 7.0.24

Fixes:
------
 1. Problem:    CQ56998 - SWIM shadow feature might not be used even though
                there is enough room in NVRAM for both SWIM groups.

    Change:     Delete unused SWIMs (group currently not used) before
                calculating whether two groups can fit into the NVRAM.

    Introduced: 7.0.20 (when feature was added).

    Relevance:  57712 and 578xx.

 2. Problem:    NPAR-SD per port configuration has only 2 instances, so it
                supports only 2 ports in NPAR-SD mode.

    Change:     Have 4 instances of those fields to support 4 port mode. Use
                reserved bits to leave all other fields in same offset, for
                backward compatability.

    Introduced: Day one.

    Relevance:  57840 - 4x10G only.

 3. Problem:    BSOD 0x7b on 57712 when running iSCSI reboot test.

    Change:     Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error
                checking.

    Introduced: 7.0.8

    Relevance:  57712 and 578xx.

Enhancements:
-------------
 1. Request:    Move "nvm cfg" option #167 "Enable FLR" to the PCIe group.

Version 7.0.22 (July 14, 2011)
=============================
Internal FW: 7.0.24

Fixes:
------
 1. Problem:    NPAR per port configuration has only 2 instances, so it supports
                only 2 ports in NPAR mode.

    Change:     Have 4 instances of those fields to support 4 port mode. Use
                reserved bits to leave all other fields in same offset, for
                backward compatability.

    Introduced: Day one.

    Relevance:  57840 - 4x10G only.

 2. Problem:    NVRAM options that should not be displayed on 578x0 are still
                visable in MF mode.

    Change:     The chip exclude list in the "nvm cfg" did not include the MF
                DID for 578x0.

    Introduced: Day one.

    Relevance:  578x0 MF mode.

 3. Problem:    Setting Warpcore registers may be ignored due to missing cycle
                in MDC/MDIO.

    Change:     On 578xx-B0, set free running counter on EMAC before each cl45
                access, and clear it at the end. This is not done globally,
                to prevent clock collisions between the four MDIO masters
                (One per EMAC).

    Introduced: Not applicable.

    Relevance:  578xx-B0

 4. Problem:    Running in NO_PCI mode fails with debug break.

    Change:     Don't call is_vpd_image_exist() incase of NO_PCI mode.

    Introduced: 7.0.15

    Relevance:  All devices.

 5. Problem:    GRC Dump would perform on 578x0 B0 as it would on 578xx.

    Change:     Fixed GRC_Dump.tcl logic that distinguishes between the 2 chips.

    Introduced: Day one.

    Relevance:  578x0 B0 only.

 6. Problem:    Possible no link when DAC is connected to 578xx device

    Change:     Restart WC microcode after module is plugged in and detected.

    Introduced: Day one.

    Relevance:  578x0 only.

 7. Problem:    Nictest D3 fails with CRC errors when using host loopback
                on device 3.

    Change:     Fixed rx_strip_crc utility to set the appropriate
                XMAC0_REG_RX_CTRL or XMAC1_REG_RX_CTRL register.

    Introduced: Day one.

    Relevance:  578xx 4-port mode.

 8. Problem:    Nictest D3 fails with host loopback on a slave device,
                if runs after setting host loopback on the current device.

    Change:     Added to chip_unload call to strip_rx_crc to reset the
                XMAC0_REG_RX_CTRL or XMAC1_REG_RX_CTRL register.

    Introduced: Day one.

    Relevance:  578xx 4-port mode.

 9. Problem:    CQ56950 - When speed is set to 1G on SFP+ device, link may
                fail to come up and system may hang due to incorrect
                initialization of the XGXS mode in the NIG.

    Change:     Fix typo.

    Introduced: 7.0.14

    Relevance:  57712+8727 and 57711+87x6

Enhancements:
-------------
 1. Request:    CQ56685 - Add nvm cfg support to Adjust PCIe G2 TX Amplitude
                drive on all Tx lanes on 57712. To maintain backwards
                compatibility, value of zero is disabling the feature (though
                this is a valid value, it cannot be configured).

    Relevance:  57712.

 2. Request:    Hide the supported boards list in "nvm cfg/chk".

    Relevance:  All devices.

 3. Request:    Add Autogreeen_stats support for 54618SE PHY.

    Relevance:  54618SE PHY.

 4. Request:    Change 578xx default RDF file to B0 RDF file.
                Unite the logic which determines which RDF file to use.

    Relevance:  578xx.

Version 7.0.21 (July 10, 2011)
=============================
Internal FW: 7.0.23

Fixes:
------
 1. Problem:    Running extlb_test with -hlb and -link_speed options,
                fails to set the link speed according to -link_speed input
                on the host loopback device.

    Change:     Fixed the init function to use the linkSpeed input argument,
                instead of using find_spd utility.

    Introduced: 7.0.5

    Relevance:  Running external loopback test with -hlb option.

 2. Problem:    Higig test case 4 "Asymmetric HiGig Support" fails to run on
                device number > 1.

    Change:     Calculate the next device number instead of using fixed
                call to device 2.

    Introduced: Day one.

    Relevance:  57712 and 578xx.

 3. Problem:    84833 PHY link does not come up. The extra PHY write to
                the auto-neg register is bringing the PHY to auto-neg
                failure, resulting in constant retry.

    Change:     Remove the extra write to this register when auto-neg is
                enabled.

    Introduced: Day one.

    Relevance:  84833 PHY only.

 4. Problem:    CQ56818 - the particular NVM image showed up on generic NIC.

    Change:     Skip the NVM image if the board is not OEM_ID_x.

    Introduced: Day one.

    Relevance:  578xx except OEM x.

 5. Problem:    CQ56462 - Unable to get link on both ports on several systems.

    Change:     Initialize warpcore twice in succession.

    Introduced: 7.0.1

    Relevance:  578xx

 6. Problem:    84833 link still comes up at 10G even when configured to
                be forced 100.

    Change:     Disable 10G advertisement.

    Introduced: Day one.

    Relevance:  84833 PHY only, may affect 84823.

 7. Problem:    578x0 B0 is using 578x0 A0 RDF file.

    Change:     Check the chip revision instead of metal version.

    Introduced: Day one.

    Relevance:  578x0 B0 only.

 8. Problem:    MCP trace includes many "vpd[0] inv addr" messages.

    Change:     Returned the MAX_VPD_LEN back to 128.
                Enabled dg_read_vpd_family_version() block_end to be larger
                than 128.

    Introduced: 7.0.20

    Relevance:  VPD image exist in NVM.

 9. Problem:    Selecting VF device causes debug break due to attempt
                to access NVRAM.

    Change:     If current device is VF, do not check if VPD image exists
                in NVRAM, nor is NPAR image exists in NVRAM.

    Introduced: 7.0.15

    Relevance:  VF enabled.

 10. Problem:   Register test fails with reset value different then expected,
                on 578xx B0 ASIC.

    Change:     Add the following registers to the exception list:
                PBF_REG_CPU_MBIST_MEMCTRL_2_STATUS_0
                USDM_REG_CPU_MBIST_MEMCTRL_2_STATUS_0

    Relevance:  578xx B0.



Version 7.0.20 (July 6, 2011)
=============================
Internal FW: 7.0.23

Fixes:
------
 1. Problem:    CQ56651 - MFW upgrade causes device information refresh to all
                other devices, even those not on the same board.

    Change:     Changed common_nvm_refresh_devices() to refresh the device
                information only of devices on the same board (with the same
                domain and bus number as the current device).

    Introduced: Day one.

    Relevance:  Two boards installed in system.

 2. Problem:    GRC Dump crash mode - Reading data from VFC was sometimes
                interrupted in the middle.

    Change:     GRC Dump script was updated to avoid race with chip.

    Introduced: 7.0.0

    Relevance:  578xx and 57712.

 3. Problem:    CQ56594 - Old MFW can be burned even if -F flag is not used.

    Change:     Don't delete MFW before burning new MFW.

    Introduced: Day one.

    Relevance:  578xx and 57712.

 4. Problem:    MFW upgrade might have failed due to "not enough room" error,
                even though there was place for this new MFW in NVRAM,

    Change:     Don't count the current place taken by images that will be
                replaced during this upgrade (such as E3_PCIE, E3_WC etc.).

    Introduced: Day one.

    Relevance:  578xx.

 5. Problem:    Segmentation fault when running "nictest" on emulation path 1,
                due to "nvm cfg" call failure to access shmem.

    Change:     Don't attempt to read shmem_base of path1 if shmem2_base
                is zero. Thus "nvm cfg" will not attempt to access shmem.

    Introduced: 7.0.19

    Relevance:  578xx Emulation.

 6. Problem:    Nictest test D3 fails on 57810 in NPAR, due to CRC errors.

    Change:     Set the strip CRC mode correctly incase of speed 2500M as well.

    Introduced: 7.0.12.

    Relevance:  57810 in NPAR mode.

 7. Problem:    MFW upgrade might cause CRC errors for some extended dir images.

    Change:     When seeking for empty room for extended dir image, if its size
                remained the same - simply return same address.

    Introduced: 7.0.19 (when extended dir was extended to 64 images).

    Relevance:  57712 and 578xx.

 8. Problem:    The "device" display doesn't show "Family Version" incase VPD
                data size is larger than 128.

    Change:     Fixed the dg_read_vpd_family_version() function to support
                MAX_VPD_LEN 512.

    Introduced: Day one.

    Relevance:  57712 and 578xx.


Enhancements
------------
 1. Request:    Add SWIM shadow feature (supported since MFW 7.0.24).
                If there is place for both instances of SWIMs in the NVRAM, the
                current SWIMs used will remain in NVRAM and the new ones will
                be copied as well. This method will enable external upgrade
                tools to keep on using the old SWIMs until reset.
                Old version will be deleted if one of the two happens:
                1. There isn't enough space in NVRAM for both SWIM groups.
                2. New MFW burned is an old version not supporting this
                   feature (Must be supported in MFW as well).

Version 7.0.19 (July 4, 2011)
=============================
Internal FW: 7.0.22

Fixes:
------
 1. Problem:    CQ56529 - DCBX is disabled in T0000G default configuration for
                all 4 ports.

    Change:     Enable DCBX by default for the two 10G ports of T0000G boards.

    Introduced: Day one.

    Relevance:  T0000G boards.

 2. Problem:    When DAC (Direct Attached Cable) is used, there's not actual
                link down event on the far side since transmitter output is not
                disabled.

    Change:     Disable transmitter output when link is disabled. The same
                change in MFW (since v7.0.20) will cause link to stay down
                using earlier version of this software (CQ56652). This version
                and after fixes it.

    Introduced: Day one.

    Relevance:  57712+8727.

 3. Problem:    CQ56496 - Incorrect nvram default values for flow control in
                NIV and NPAR mode

    Change:     Change default flow-control value of Autoneg to Both for devices
                which don't support autoneg.

    Introduced: Day one.

    Relevance:  578xx.

 4. Problem:    CQ56582 - BCM57810 may exhibit link down when connected to KR
                switch.

    Change:     Don't overwrite the value for other reg.

    Introduced: 7.0.18.

    Relevance:  578xx KR.

 5. Problem:    Check if 578xx revision is B0 was incorrect, incase of ASIC.

    Change:     Checked if MISC_REG_CHIP_REV is set to 1, instead of
                checking MISC_REG_CHIP_METAL.

    Introduced: Day One.

    Relevance:  578xx B0 ASIC.

 6. Problem:    Nictest D7 TOE test is excluded from testing on emulation,
                since there is no license key on emulation.

    Change:     Do not exclude test D7 on FPGA/Emulation, though there
                is no license key.

    Introduced: 7.0.15

    Relevance:  578xx emulation.

 7. Problem:    CQ56248 - Newly programmed MAC addresses aren't displayed in the
                "device" summary.

    Change:     "nvm cfg" changes are stored also in shmem, thus "device" summary
                including the new MAC addresses is updated immediatly.

    Introduced: 6.2.13, BC 6.2.5

    Relevance:  All devices.

 8. Problem:    CQ56606 - Unable to update iboot on 57800 with NPAR enabled.

    Change:     validate_chip() function did not support device IDs of
                578xx with NPAR.

    Introduced: Day one.

    Relevance:  578xx with NPAR.

 9. Problem:    Warning message: "MDC/MDIO access timeout" on the first driver
                load. This warning appears during the link reset sequence, but
                it has no significant meaning, since it occur prior to the
                first phy initialization command.

    Change:     Adjust AER and CL45 clock during link reset sequence

    Introduced: Day one.

    Relevance:  57712+8727

Enhancements
------------
 1. Request:    Add wol_dump script.

 2. Request:    Increase maximum number of images in extended dir from 32
                images to 64 images.

                Feature includes backward/forward compatablity:
                a. If extended dir is of old format and adding/deleting/changing
                   extended dir image, the new format will be burned to the
                   NVRAM.
                b. If extended dir is of new format and number of images is
                   above 32, old diag will not enable to perform any nvm
                   changes.

 3. Request:    Add WC and PCIE microcode support for E3 B0.

    Relevance:  578xx.

 4. Request:    Add AutogrEEEn support to 84833 and 54618SE (CQ56174) PHY.

    Relevance:  578xx.

 5. Request:    Ediag reads AutogrEEEn setting from nvram, and sets it
                accordingly.

 6. Request:    Support sharing of PFC configuration between functions
                on the same port.

    Relevance:  MF devices with DCB support.

 7. Request:    Nictest C3 CAM test should test IGU CAM.

    Relevance:  578xx B0 and 57712.

 8. Request:    Ediag command to check AutogrEEEn stats: autogreeen_stats.
                Reports and clears number of times LPI has been entered.

    Relevance:  84833 PHY.

 9. Request:    Added NIC configuration and statistics template version
                display and check.

Version 7.0.18 (June 20, 2011)
=============================
Internal FW: 7.0.20

Fixes:
------
 1. Problem:    Need to update T0000G to enable AutogrEEEn by default.

    Change:     Updated T0000G to enable AutogrEEEn by default.

    Introduced: Day one.

    Relevance:  T0000G boards.

 2. Problem:    Nictest C1 DMAE test fails on 57800 device 5
                with NPAR enabled.
                This test should have been excluded on this device.

    Change:     Fixed dg_is_primary_dev() to support 57800
                with NPAR enabled (4-port MF mode).

    Introduced: Day one.

    Relevance:  57800 with NPAR enabled.
                (4-port MF mode).


Enhancements
------------
 1. Request:    Honor BAM on KR NVRAM config for 578xx.

    Relevance:  578xx KR only.

 2. Request:    CQ56394 - Add support to 578xx MF and VF DIDs.

    Relevance:  578xx with NPAR.
                578xx VF.

 3. Request:    CQ56336 - Add ediag Command to Return ASIC Temperature.

    Relevance:  578xx.

Version 7.0.17 (June 15, 2011)
=============================
Internal FW: 7.0.20

Fixes:
------
 1. Problem:    CQ56094 - D6 failure on 57810 connected to switch with
                running traffic in the background.
                ERROR: Received packet is different than packet specification!

    Change:     Incase of received packet different then expected packet
                specification, drop the packet and continue testing with
                the next packet.

    Introduced: Day one.

    Relevance:  Device connected to switch with background traffic.

 2. Problem:    CQ55438 - System halt during load bnx2x driver, after
                terminating lediag, using ctrl+c in the middle of nictest
                group C tests.

    Change:     Incase of ctrl+c in the middle of group c tests, run
                "reset_chip" alone with other cleanup actions.

    Introduced: Day one.

    Relevance:  57711 only.

 3. Problem:    Need to update references from 54616 PHY to 54618SE.

    Change:     Updated references from 54616 PHY to 54618SE.

    Introduced: Day one

    Relevance:  No functional impact.

 4. Problem:    CQ56196 "nictest" fails A15 PXP registers test on 57840
                device 3, after running stress tests.
                "ERROR: Reset value is different than expected" on the
                following registers:
                PXP_REG_HST_INCORRECT_ACCESS_DATA,
                PXP_REG_HST_INCORRECT_ACCESS_VALID,
                PXP_REG_HST_INCORRECT_ACCESS_ADDRESS

    Change:     Exclude these PXP registers from testing, since
                PXP block is not reset via reset_chip utility.

    Introduced: Day one.

    Relevance:  "nictest" after stress tests.

 5. Problem:    Driver loading problems on 4 port device with active MF mode.
                Problem occurs due to wrong calculation of mailbox function.

    Change:     In 4 port mode, change calculation of FUNC_MAILBOX_ID_PARAM to
                be: port_id + vnic_id*2.

    Introduced: Day one.

    Relevance:  4 port device (578xx) with active MF mode.

Enhancements
------------
 1. Request:    CQ53961 - Remove 10Mbps from 84833 PHY. Honor PHY speed
                attributes for 10/100. If the driver is set up to advertise
                only 10M, no speed capability will be advertised. And
                no link will be established.

    Relevance:  84833 PHY based boards.

 2. Request:    Add definition for autogreen in eLink.

    Relevance:  84833 PHY and 54618SE PHY based boards.

Version 7.0.16 (June 13, 2011)
=============================
Internal FW: 7.0.20

Fixes:
------
 1. Problem:    Upgrading MBA image from device 3 and above in NPAR mode,
                fails with DEBUG BREAK:
                if (dg_pci_devices[pci_arr_idx].drv_dev_if_p == NULL).

    Change:     Fixed dg_select_other_func() calculation of pci_arr_idx
                for the other function, should use func%2.

    Introduced: Day one.

    Relevance:  NPAR mode.

 2. Problem:    Nictest A33, C1 failures on second board running on Linux
                Suse 11.1 with IOMMU enabled.
                Physical memory allocated request by "hmem palloc" was made
                with the first UM device, regadless of the device running.

    Change:     Device handler is transfered to kerenel physical allocation
                function as a parameter, so that memory allocation request is
                made with the correct UM device.

    Introduced: Day one.

    Relevance:  Linux Suse11.1 with IOMMU enabled.
                Second board installed in system.

 3. Problem:    CQ56104 - extra zero in VPD part number of devices 57810
                and 57840.

    Change:     Removed redundant zero in VPD part number of devices
                57810 and 57840.

    Introduced: Day one.

    Relevance:  57810, 57840 only.

 4. Problem:    "nvm cfg" NIV options are hidden though NIV images
                exist in NVM. The $::current(IS_NIV) is zero.

    Change:     Fixed typo in tcl_al_update_isnpar_isniv_env_vals(),
                which did not set $::current(IS_NIV).

    Introduced: 7.0.15

    Relevance:  NIV images exist in NVM.

 5. Problem:    CQ56079 - Add pause to "nvm dir" listing in case it is
                longer than a screen page.

    Change:     Replaced "printf" with "sprintf" into buffer, then use
                of Tcl_AppendStringsToObj().
                Thus TCL function FileOutputProc() will pause after
                printouts reach end of screen.

    Introduced: Day one.

    Relevance:  DOS, UEFI.

Enhancements
------------
 1. Request:    Changed MBA VLAN default value from 0 to 1.

    Relevance:  New boards introduced in T7.0: 578xx boards and one 57712
                OEM design.

 2. Request:    Updated nvm cfg A1006G_x for OEMs.

    Relevance:  A1006G boards.

 3. Request:    Add elink_84833_hw_reset_phy function.

    Relevance:  84833 PHY based boards.


Version 7.0.15 (June 6, 2011)
=============================
Internal FW: 7.0.18

Fixes:
------
 1. Problem:    Nictest D4 LSO test, D5 Statistics test, D6 RPC test fail
                on 57800 devices 3,4.
                Failure is due to test attempt to set XMAC loopback,
                (instead of UMAC loopback) on these 1G ports, cause of
                incorrect link speed value.

    Change:     Use "find_speed" utility to set link speed to 1G, incase
                device is not capable of 10G or 20G.
                The "set_mac_lb" utility sets UMAC loopback, incase of 1G
                link speed.

    Introduced: Version 7.0.13.

    Relevance:  57800 device 3,4

 2. Problem:    CQ56011 - "vpd show" fails with error on board without a
                VPD image (error message: "Extended dir does not exist"),
                incase a second board exists with VPD image in NVM.

    Change:     Changed the system variable $::sys(IS_VPD_IMAGE), which
                determines if "vpd show" displays the VPD image data
                or the "nvm cfg" data, to be per device.
                (Meaning $::current(IS_VPD_IMAGE)).

    Introduced: Day one.

    Relevance:  Two boards installed in system:
                One without VPD image.
                Second with VPD image.

 3. Problem:    "nvm cfg" NPAR group empty though there is a NIC_PRTION
                image, incase a second board exists without NIC_PRTION.

    Change:     Changed the system variable $::sys(IS_MAC_PARTITION), which
                determines if "nvm cfg" shows NPAR options, to be per device.
                (Meaning $::current(IS_MAC_PARTITION)).

    Introduced: Day one.

    Relevance:  Two boards installed in system:
                One without NIC_PRTION image.
                Second with NIC_PRTION image.

Enhancements
------------
 1. Request:    Changed per port RJ45 magjack pair swap to a config value
                instead of a simple enable/disable in nvm cfg for 84833 PHY.
                Changed "nvm cfg" option #177 under "features" menu.

 2. Request:    CQ54181 - Skip Nictest D07 TOE test in case no TOE license.

 3. Request:    Added OCSD Request Update Interval field to shmem2 for OCSD.
                This field will be updated by MBA code after locating
                OCSD structure in the host memory during OCSD registration.

    Change:     Added following 32 bits fields to SHMEM2:
                ocsd_req_update_interval.


Version 7.0.14 (June 1, 2011)
=============================
Fixes:
------
 1. Problem:    Some "nvm" functions did not check that allocated buffer
                pointer is not NULL and/or did not free the allocated memory.

    Change:     Add check of allocated buffer pointer.
                Add free of allocated buffer at the end of function and at
                return point before end of function.

    Introduced: Day one.

 2. Problem:    Segmentation fault upon loading lediag, when no board installed
                in system.

    Change:     Fixed "device" default command implementation, to return to current
                device only if cur_dev_idx > 0.

    Introduced: 7.0.0.1

 3. Problem:    Segmentation fault upon exiting lediag, when no board installed
                in system.

    Change:     Added initialization of environment variable CHIP_NUM, since
                diag cleanup function attempts to read it.

    Introduced: 7.0.0.1

 4. Problem:    Upgrading FCOE image using "nvm upgrade -feb" should not
                program FEB_CFG3, FEB_CFG4 on 57800.

    Change:     Upgrade FEB_CFG3, FEB_CFG4 only in case of four-port board
                and device ID 57840.

    Introduced: 7.0.0.1

 5. Problem:    CQ55942 - Ediag "nictest" fails C05 GRC test on 57710 device.

    Change:     On 57710, set register MISC_REG_AEU_MASK_ATTN_FUNC_0 instead
                MISC_REG_AEU_GENERAL_MASK.

    Introduced: 7.0.0.1

 6. Problem:    CQ55961 - Setting "nvm cfg <id>=<value>" to an excluded option
                on this device, shows the option's announcement instead of
                ignoring this setting.

    Change:     Added check if "nvm cfg" option is excluded on this device.
                If so, show a warning "Field is ignored".

    Introduced: 7.0.0.1


Enhancements
------------
 1. Request:    Update PMD settings for 578xx SFI/XFI/DXGXS according to the
                new recommended values.

Version 7.0.13 (May 25, 2011)
=============================
Internal FW: 7.0.17

Fixes:
------
 1. Problem:    The "driver link_state" command returns unknown link speed,
                when running in NPAR mode.
                In NPAR mode, the GET_MEDIUM_SPEED return values between
                LM_MEDIUM_SPEED_SEQ_START till LM_MEDIUM_SPEED_SEQ_END.
                These values were not handled by ediag.

    Change:     Add conversion of GET_MEDIUM_SPEED return values between
                LM_MEDIUM_SPEED_SEQ_START till LM_MEDIUM_SPEED_SEQ_END
                into relevant link speed string.

    Introduced: Day one.

    Relevance:  57712/578xx NPAR mode only.

 2. Problem:    Possible no link on 578xx SFP+.
                Failed reading from SFP+ module EEPROM due to I2C register
                not returning acknowledge over successful operation.

    Change:     Add work-around of up to 3 retries in case read
                through I2C failed.

    Introduced: Day one.

    Relevance:  578xx SFI

 3. Problem:    Setting internal MAC loopback is not according to
                requested link speed.
                On emulation, setting is according to MISC_REG_BOND_ID.
                On ASIC, setting is according to speed capabilities in shmem.

    Change:     Set internal MAC loopback according to requested link speed:
                For link speeds 10M/100M/1000M/2500M - use EMAC LB on 5771x
                and UMAC LB on 578xx.
                For higher link speeds - use BMAC LB on 5771x and
                XMAC LB on 578xx.

    Introduced: Day one.

    Relevance:  5781x/xx.
                Affects nictest D1,D4,D5,D6,D7 tests, which run with internal
                MAC loopback.

Enhancements
------------
 1. Request:    Added support to program NIC configuration and statistics
                template.

 2. Request:    Add per port AutoGreEEEn enable/disable to nvm cfg configuration.
                Added "nvm cfg" option #176 under "features" menu.

 3. Request:    Add dec_grc.tcl script into script wrapper so it will be part
                of ediag executable (no need to source this file).

    Impact:     Added scriptsE.c which includes dec_grc.tcl, since there
                was no room in already existing scriptsA-D.c files.
                Thus executable file size is increased.

 4. Request:    Add per port RJ45 magjack pair swap enable/disable to nvm cfg
                configuration for 84833 PHY.
                Added "nvm cfg" option #177 under "features" menu.

 5. Request:    Add -detail option for "reg read" to allow GRC decoding



Version 7.0.12 (May 19, 2011)
====================================

Fixes
-----
1. Problem:
      Running "l4nic_A1" test fails with "can't read regsName".

   Cause:
      The RDF file wasn't parsed before test.

   Change:
      Added parsing of relevant RDF file at performance_main().

2. Problem:
      Using "-fnvm" option on 578xx, programs the NVM twice.

   Cause:
      The NVM programming, which runs on all devices, is skipped
      incase device is on the same PCI bus as previous device.
      This logic was performed on 5771x only, not on 578xx devices.

   Change:
      Check if device is on the same PCI bus as previous device,
      thus skip NVM programming is performed on 5771x/578xx.

   Impact:
      578xx Only.

3. Problem:
      "nvm cfg -dump" burned nvm info of first function to all functions.
      It caused per port and per function values in other functions to be
      wrong.

   Cause:
      Environment variable IS_SPECIAL_NVM_MODE was cleared in the function
      tcl_al_update_env, and this function was called after each nvm cfg
      command.

   Change:
      Don't clear value of IS_SPECIAL_NVM_MODE in tcl_al_update_env function,
      as anyway it is cleared after generating dump file, and in the output
      of the dump file as well.

4. Problem:
      CQ55359 External loopback test (D3) fails if runs after PHY loopback
      test (D2) on certain 578xx boards.
      D3 fails if MFW link was up before.

   Cause:
      D2 PHY loopback test configures speed as 10G autoneg instead of 10G force
      (special mode for loopback).
      This setting is left for the sequential D3 test, thus D3 test fails.

   Change:
      In all loopback KR modes, disable AN and set speed to force 10G.

Enhancements
------------
1. Request:
      Adjust some nvm options for 578xx.

   Change:
      nvm cfg 94 group was changed to VF.
      nvm cfg 75 was removed for 578xx.

2. Request:
      Add the ability to switch settings from one speed to another in
      the Warpcore without having to unload the driver.

   Change:
      Add a routine to restore the Warpcore register settings back to
      default. The routine is called before configuring the Warpcore to
      the desired speed settings.

   Impact:
      578xx only.

Version 7.0.11 (May 16, 2011)
====================================

Fixes
-----
1. Problem:
      Wrong NICP MAC address when programed using SYSOP mode
      "-nicp_mac" option.

   Cause:
      The function which programed the NICP MAC addresses,
      stored the upper 3 bytes and lower 3 bytes in two u32 variables,
      within NIC_PRTION image function configuration.
      Thus the 4'th byte of the lower MAC address variable was always zero.

   Change:
      Fixed the function which programed the NICP MAC addresses to
      store the upper 2 bytes and lower 4 bytes in two u32 variables,
      within NIC_PRTION image function configuration.

   Impact:
     SYSOP mode only.
     Introduced in version 6.2.12.

2. Problem:
      CQ53653: 57711: Cannot load diag driver when MF mode is set to 0
      (MF allowed).

   Cause:
      Bug in driver flow that reads the mac address according to mf mode.

   Change:
      Fixed the flow so that mac addresses are read only after the mf mode
      is determined.

   Impact:
      When MF mode is set to 0 (MF allowed) but mf configuration
      hasn't been set.

3. Problem:
      CQ55522 nictest C5, C6 fails on devices 3 and above in NPAR mode,
      when running in manufacture mode with "-dev" option.

   Cause:
      Tests C5,C6 should'nt run on non-primary devices.

   Change:
      Exclude tests C5,C6 (along with tests C1,C4,C7-C11)
      on non-primary devices.

   Impact:
      Introduced in version 7.0.10.
      NPAR mode only.

4. Problem:
      Nictest Register tests A38-A40 fails on devices 3 and above
      in NPAR mode, when running in manufacture mode.

   Cause:
      Tests fails since all registers in these blocks are common,
      since common registers are skipped test fails with
      "no regisrers to test".

   Change:
      Exclude tests A38-A40 on non-primary devices.

   Impact:
      NPAR mode only.

5. Problem:
      CQ55368 Nictest External Loopback Test D3 fails in NICP mode.

   Cause:
      The "driver link_state" command returns unknown link speed,
      thus diag utility chip_load doesn't set the strip CRC flag
      correctly and test fails with CRC errors.

   Change:
      Incase "driver link_state" returns unknown link speed, set the
      strip CRC flag according to required link speed.

   Impact:
      NPAR mode only.
      A warning message will be shown when "driver link_state" returns
      unknown link speed. This will be fixed in next driver version.


Enhancements
------------
1. Request:
      Reserve spot in nvm cfg for switching regulator loop gain.

   Change:
      As requested.

Version 7.0.10 (May 8, 2011)
====================================

Fixes
-----
1. Problem:
      CQ55080 SUT freeze when upgrading combined MBA image on board with
      NVM size of 4Mbit.

   Cause:
      eDiag is stuck inside the procedure, which looks for room to place
      the new combined image in NVM, since there is not enough space.

   Change:
      Fixed the check if there is enough space in NVM for the new image:
      a. Added missing size of path1_nvm_image_t.
      b. Removed reduandant decrease of previous image size (of the same type),
         since it was decreased twice.

2. Problem:
      CQ52272 (Cont.) Programing an already programed 57712 4-port board
      on the second time, fails with debug break:
      "Assertion Failed: function dg_select_other_func"

   Cause:
      The function which selects the second ASIC assumed that it's pci index
      within the pci devices array is +no_everest_functions (assumed 2) from
      the current index.

   Change:
      Fixed the dg_select_other_asic() to go through all devices until bus number
      is different then current bus.

   Impact:
     SYSOP mode only.
     57712 4-port already programed board only.

3. Problem:
      (CQ54552) System breaks once link is up after PMF migration
      when speed is 1G.

   Cause:
      Missing synchronization flag between PMF and non-PMF which
      indicate the XGXS type, led to incorrect initialization once
      link is up after PMF migration.

   Fix:
      Initialize this flag during synchronization


4. Problem:
      CQ55222 A33 test failure when management fw is enabled

   Cause:
      Idle_chk after test failed with Error if no traffic (level 2):
      NIG: Port 0 RX MCP descriptor FIFO is not empty. Value is 0x0.

   Change:
      This idle_chk severity was changed to warning since RX MCP
      descriptor FIFO could be not empty when there is NCSI traffic.

   Impact:
      Introduced in 7.0.9.

5. Request:
      Potential link issue

   Cause:
      Incorrect code alignment led to bad PHY struct initialization

   Change:
      Fix PHY struct initialization

   Impact:
      Introduced on 7.0.9

6. Problem:
      CQ55224 EDiag Fails Nictest B2 Memory CCM Test on 57712,
      when 57711 and 57712 boards are installed in system.

   Cause:
      B2 Memory test fails with "no memories".

   Change:
      Removed from memory test call of parse_rdf utility -b flag,
      which parsed from RDF file only the tested block.

   Impact:
     Only when 57711 and 57712 boards are installed in the same system.

7. Problem:
      EDiag Fails B7 DBG Memory Test on 57711 using "-dev" option,
      when both 57712 and 57711 installed in the same system.
      57711 is the second board installed.

   Cause:
      DBG block was not parsed from RDF file.

   Change:
      Remove DBG block from skip blocks.

   Impact:
     Only when 57711 and 57712 boards are installed in the same system.

8. Problem:
      Link speed might not be set correctly in NPAR mode.

   Cause:
      Pre-boot driver stopped supporting it, so only default speed
      configuration counts.

   Change:
      Remove nvm cfg 116 - MAC partition physical link speed

9. Problem:
      CQ55261 eDiag bypasses group B memory on E1 2'nd port in manufacturing
      mode, using "-dev" option.

   Cause:
      ediag excludes tests of shared HW blocks on non-primary devices.

   Change:
      Do not exclude tests of shared HW blocks on non-primary devices,
      in case this specific device is selected.

   Impact:
     Introduced 6.2.8.

10.Problem:
      Wrong link LED when speed lower than 10G on 578xx devices

   Cause:
      Incorrect LED mode setting

   Change:
      Set correct LED mode setting

Enhancements
------------
1. Request:
      When driver is loaded, write eDiag version string to appropriate offset
      in the scratchpad (according to value written in ncsi_oem_data_addr field
      in shmem2).

   Change:
      If driver loaded is first one in the chip (according to response from MCP)
      then copy version string as required.

2. Request:
      Add support for loading dual-flavored MFW (starting from MFW 7.0.11)

   Change:
      As requested

3. Request:
      (CQ53376)
      a. Improve "nvm cfg -dump" mechanism to add to output file per function
         fields of all 8 functions, even if some of the functions are not
         enumerated by the PCI.
      b. If loading output file generated by the new mechanism, per fcuntion
         fields should be burned to NVM for all 8 functions, even if not all
         of them are enumerated by the PCI.
      c. New mechanism should be backward/forward compatible, so new dump files
         should work for older diag versions and vice versa.

   Change:
      a. Added new TCL environment variables (IS_SPECIAL_NVM_MODE and
         SPECIAL_NVM_MODE_FUNC_NUM). If IS_SPECIAL_NVM_MODE==1 then
         path/port/func number values taken for the nvm cfg read and write
         operations are taken according to SPECIAL_NVM_MODE_FUNC_NUM value
         and not according to the current selected device.
      b. When performing nvm cfg -dump operation the script changes
         IS_SPECIAL_NVM_MODE value to 1 at the beginning, and clears it at the
         end.
      c. The output tcl commands generated by the nvm cfg -dump command
         write nvm values by using the new tcl environment variables, unless
         older diag version is used.

4. Request:
      Make "nvm cfg" SMBUS address option shared instead of per port.

   Change:
      "nvm cfg" option 62 is obsulete (renamed to "IPMI SMBUS address").
      Added new "nvm cfg" option 175 "SMBUS address", shared option.
      The new option 175 is part of CFG_SHARED image.

5. Request:
      Refine some nvm configurations for 578xx.

   Change:
      Exclude switch config (XGXS/Serdes) from 578xx (nvm options 57,60).
      Exclude RX/TX pre-emphasis settings for 578xx (nvm options 47,48).
      Renames option 131 to "Net Serdes (MRS) Interface".
      Populate A1006 over-current settings.

   Impact:
      578xx only.
      In case nvm is programmed from scratch, device may not link when using
      older drivers/MFW.

Version 7.0.9 (April 28, 2011)
====================================

Fixes
-----
1. Problem:
      Running "l4nic_A1" test fails with the following error:
      "No value given for parameter linkSpeed to init".

   Cause:
      The utility performance_main() did not support the new init
      parameter "linkSpeed".

   Change:
      Added to performance_main() support for -link_speed option.

   Impact:
      Introduced in 7.0.7.

2. Problem:
      CQ52272 (Cont.) Programming 16 NICP MAC addresses in SYSOP mode
      on 57712 4-port blank board, fails with "Not enough space in NVM".

   Cause:
      The function which calculates if there is enough room in NVM,
      reads invalid value (0xffffffff) of bootstrap.code_len, on
      a blank board. Thus, mistakenly reports there is not enough
      space in NVM for NIC_PRTION image.

   Change:
      Change the order of programming in SYSOP mode: first burn the
      NVM image, then program the MAC addresses including NICP mac addresses.

   Impact:
     SYSOP mode only.
     57712 4-port blank board only.

3. Problem:
      CQ54501 Choosing "nvm cfg" group with no. of options larger then can
      fit into screen, then selecting 'q' to quit, causes error message:
      "stdout": unknown error".

   Cause:
      eDiag gets into tcl8.3 FileOutputProc() function, which has a known
      failure in the check if screen is full.

   Change:
      Reduced number of lines shown in nvm_cfg.tcl utility display_menu(),
      before prompting user to select "more .., 'q' to quit" to avoid
      getting into tcl8.3 function.

   Impact:
      Introduced in 7.0.0.13

4. Problem:
      MDC/MDIO access to Warpcore registers may fail with low
      probability.

   Cause:
      Warpcore PCB controller may get stuck without having MDC free
      running in the system.

   Fix:
      Add work-around for 578xx-A0 by adding another write to the
      MDIO bus after each MDC access to the Warpcore. This will be
      fixed in HW for 578xx-B0.

   Impact:
      578xx.

5. Problem:
      When setting link_speed as a parameter to D2 loopback test, this value
      is ignored and link_speed is set to 10GB in any case.

   Cause:
      If medium type is LM_MEDIUM_TYPE_XGXS_10_LOOPBACK, lm_init_phy overwrites
      req_line_speed to 10GB.

   Fix:
      If medium type is LM_MEDIUM_TYPE_XGXS_10_LOOPBACK, overwrite value of
      req_line_speed to 10GB only if it is zero, otherwise: leave original
      value.

6. Problem:
      NPAR-SD fields were not added to "nvm cfg -dump" output file.

   Cause:
      Those fields didn't have default value, and only fields with default
      value are added to the nvm cfg dump output file.

   Fix:
      Add default value to NPAR-SD fields.

7. Problem:
      (CQ54750) when downgrading BC version from 6.x and latter to BC 5.2.5
      and older, there is an error log that mcp shmem signature is missing,
      and driver operations fail.

   Cause:
      Between those versions location of shmem inside scratchpad was changed.
      BC versions before 5.2.5 didn't update shmem and shmem2 offset register
      after upgrade (update was performed only after reboot/power on).
      Therefore, driver kept on searching for bc signature in old offset.

   Fix:
      After successful bc version upgrade (through nvm upgrade or nvm prg), if
      bc version is before 5.2.5, update manually shmem base offset and shmem2
      base offset registers to predefined value, and rescan pci (for bar).

8. Problem:
     CQ54851 Nictest A33 test fails with idle_chk errors:
     idle_chk. Error (level 1)  : AEU: P0 AFTER_INVERT_3 is not 0, Value is 0x2820000
     idle_chk. Error (level 1)  : AEU: MCP AFTER_INVERT_3 is not 0, Value is 0x2820000

   Cause:
      Using latest MFW, SW timer is asserted causing idle_chk to fail.

   Fix:
      Fixed idle_chk masking since SW timer asserted is normal and should not fail
      the idle_chk.

   Impact:
      578xx with MFW 7.0.9 and above.

9. Problem:
     (CQ55905) typo in the spelling of the word "temperature" in the nvm cfg
     menus.

   Cause:
      Typo.

   Fix:
     Change spelling.

   Impact:
      Introduced in version 7.0.8.

Enhancements
------------
1. Request:
      Add default TX PMD settings (de-emphasis) for 578xx.

   Change:
      Set the TX settings per PMD type (SFI/XFI/DXGXS/KR) according
      to DVT measurements to achieve optimal link.

   Impact:
      578xx.

Version 7.0.8 (April 17, 2011)
====================================

1. Problem:
      SYSOP option "-stride 32" fails.

   Cause:
      SYSOP option "-stride" did not support values bigger than 16.

   Change:
      Fixed "-stride" option to support values <= 32.


2. Problem:
      SYSOP MAC programming with options "-m -autom -asiccnt 2" fails
      on blank board, with "invalid device number".

   Cause:
      SYSOP option "-m -autom -asiccnt 2" attempts to program MAC addresses
      for the second ASIC on devices 9 and 10, which are enumerated as devices
      3 and 4 on boards without FW.

   Change:
      When "-asiccnt 2" used, find the first device index of the second ASIC
      (asic2_start_dev), and do not trust device enumeration.
      Program MAC addresses of the second ASIC starting at device index
      asic2_start_dev.

   Impact:
      Introduced in version 7.0.6.

3. Problem:
      CQ54677 "driver load" fails on 578xx when runs in DOS with
      "Debug Break Message: Failed to release context".

   Cause:
      The LM function lm_dmae_context_release() calls
      lm_dmae_locking_policy_unlock() which always returned failure
      in DOS.

   Change:
      Fixed lm_dmae_locking_policy_unlock() to return success in DOS.

   Impact:
      DOS only.
      Introduced in version 7.0.7.

4. Problem:
      CQ53822 Inconsistent showing "Family Version" when more than
      one board installed.

   Cause:
      "device" command shows the "Family Version" read from VPD of
      the currect device. Thus when displaying all devices, all of
      them will show the same "FamVer" (of the current device).

   Change:
      Select the requested device, before showing it's device information,
      including "FamVer" read from VPD.

   Impact:
      More than one board installed in setup.

5. Problem:
      External loopback test (D3) failure on 57810 designs.

   Cause:
      Loopback test script assumes 20G as default speed when 578xx is in
      a 2-port configuration.

   Change:
      Check link speed capability to determine the default speed.

   Impact:
      578xx

6. Problem:
      CQ53823 NVM Upgrade no longer supports the use of double
      backslashes in file name path.

   Cause:
      TCL function Tcl_Eval(interp, str) doesn't support use of double
      backslashes in file names.

   Change:
      Replaced use of Tcl_Eval() with Tcl_FileObjCmd().

   Impact:
      DOS only.
      Introduced 6.0.17.

7. Problem:
      "nvm dir" mismatch version of SWIM1-4 incase of existing
      MBA PCI30_CLP image.

   Cause:
      SWIM version string includes suffix of the MBA PCI30_CLP version.

   Change:
      Added missing null terminator at the end of FW version string.

8. Problem:
      "nvm crc" does not check HW info (manuf_info) of path1 in NVM.

   Cause:
      Missing CRC check of HW info (manuf_info) of path1 in NVM.

   Change:
      Added missing CRC check of HW info of path1 in NVM.
      Displayed as HW_INFO_2 in "nvm crc" output.

Enhancements
------------
1. Request:
     Add 1G support for XFI serdes network interface type of Warpcore

   Change:
     As requested

   Impact:
     578xx - XFI

2. Request:
     Add to "l4spec update tcp" the DPM_TEST_EN option, as part of the
     required changes for testing write-combine operations.

   Change:
     As requested

3. Request:
      Disable ATC (nvram option 92) on all boards and check its value in "nvm
      chk".

   Change:
      As requested.

4. Request:
      Add preliminary support for E3+84833 to pass extlb_test. Caveat that both
      drivers must be loaded at this time to function correctly.

   Change:
      As requested.

5. Request:
      Support new extended shared dev_info NVM image in nvm cfg mechanism.

   Change:
      1. Add new nvm image in extended dir for that purpose.
      2. For backward-forward compatability purposes, support all 3 cases:
         a. Image size is equal to structure size known to this ediag version.
         b. Image size is bigger than structure size known to this ediag version
            (old ediag version) - don't change "new" values.
         c. Image size is smaller that structure size known to ediag version
            (old nvm image ) - fill other values with zeros.

6. Request:
      Support new temprature monitor nvm values.

   Change:
      Added 5 values (nvm cfg 169-173) to extended shared dev_info nvm image:
      a. Temprature threshold to turn fan on (Celcius).
      b. Temprature threshold to shut down chip (Celcius).
      c. EPIO to toggle according to fan threshold.
      d. EPIO to toggle according to shut down threshold.
      e. Time between measurement (in seconds).


Version 7.0.7 (April 11, 2011)
====================================
Fixes
-----
1. Problem:
      CQ54465 External loopback test (D3) failure on 578xx.

   Cause:
      Incorrect SFP+ module power setting, value was swapped.

   Change:
      Reverse value to fit board scheme.

   Impact:
      578xx SFP+ when nvm cfg #160 is set.

2. Problem:
      (CQ54248) User was not able to choose FCoE_boot as a value to MBA boot
      protocol in command line ("mbap" option), and that option was also not
      detailed in the documentation ("help" command and user manual).

   Cause:
      Forced value to be less than 4, while 4 (FCoE_boot) is a valid value.

   Change:
      1. Force value to be less than 5.
      2. Add value of 4 to usage function and to documentation.

3. Problem:
      (CQ51066) Link status in port mailbox indicates AUTONEG is disabled
      and no Serdes.

   Cause:
      Link status was zeroed during link down state.

   Change:
      Set AUTONEG and SERDES indications when needed.

4. Problem:
      Incase no 57xxx board installed in system, several error messages
      "Nictest_init: Unknown device ID" are shown.

   Cause:
      The function which gets the default set of nictest tests, did
      not exist the loop on all tests upon failure to get device ID.

   Change:
      In case of failure to get device ID, exit the get_test_default_set()
      with error code.

5. Problem:
      TCL utility "is_4port_mode" was incorrect.

   Cause:
      TCL utility "is_4port_mode" read MISC_REG_PORT4MODE_EN_OVWR bit 1
      (instead of bit 0) to determine ovwr flag.

   Change:
      Fixed TCL utility "is_4port_mode" to read MISC_REG_PORT4MODE_EN_OVWR
      bit 0 to determine ovwr flag and bit 1 to determine is_4port.

   Impact:
      578xx only.

6. Problem:
      (CQ53591) when downgrading BC version from 6.x and latter to BC 5.2.5
      and older, there is an error log that mcp shmem signature is missing,
      and driver opertaions fail.

   Cause:
      Between those versions location of shmem inside scratchpad was changed.
      BC versions before 5.2.5 didn't update shmem offset register after
      upgrade (update was performed only after reboot/power on).
      Therefore, driver kept on searching for bc signature in old offset.

   Change:
      After success bc version upgrade (through nvm upgrade or nvm prg), if
      bc version is before 5.2.5, update manually shmem base offset
      register to predefined value, and rescan pci (for bar).

   Impact:
      DOS version only.

7. Problem:
      Upgrading BC version from 5.0.x to 6.2.6 (and above) fails with
      lm_get_shmem_info() failures.

   Cause:
      The shared memory changed location between these BC versions.
      From BC 6.2.6, the bootcode considers this as hard reset (and not POR),
      thus does not reload the shared memory causing the driver to read
      wrong data, specifically, the BAR size.

   Change:
      When upgrading NVM image, set the MISC_REG_GENERIC_POR_0 to 1 to force
      the BC reload of the shared memory in this case.

8. Problem:
      Changing "nvm cfg" option 62 "SMBus Address" to hex value bigger than 9,
      fails with syntax error.

   Cause:
      Check if this field is a multiple of 2, was performed on the hex string,
      instead of decimal value.

   Change:
      Changed the math expression to use the decimal value
      (instead of hex string).


Enhancements
------------
1. Request:
     Add "nvm cfg" option 167 to enable/disable FLR capabilty.

   Change:
     Added "nvm cfg" option 167 - Enable FLR, which sets the
     PORT_HW_CFG_FLR_ENABLED in Port HW configuration in NVRAM.

2. Request:
      Add command line option "-dcbx" to enable/disable DCBX protocol.

   Change:
      As requested.

3. Request:
      Add to "nictest" option "-link_speed <speed>" to enable user to
      set speed (not automatically according to link capabilities).

   Change:
      As requested.

   Impact:
      578xx only.

Version 7.0.6 (April 4, 2011)
====================================
Fixes
-----
1. Problem:
      TX fault LED doesn't work upon module validation

   Cause:
      Incorrect GPIO assignment

   Change:
      Fix GPIO setting that controls the TX fault LED

   Impact:
      578xx - SFP+

2. Problem:
      DAC may not link up

   Cause:
      Register read was missing after setting EDC mode

   Change:
      Read EDC register after setting it

   Impact:
      578xx - DAC

3. Problem:
      UEFI Application crashed when launched in non engineering mode.

   Cause:
      Variables definitions were not aligned in parse_and_process_args
      function.

   Change:
      Define the variables as 4 bytes aligned.

   Impact:
      Introduce in version 7.0.4.
      UEFI flavor only.

Enhancements
------------
1. Request:
     CQ54230 Correct ediag NPar MAC address order for 57712
     two-port and four-port boards

   Change:
     Fixed "-nicp_mac" option according to the requested
     NPar MAC address order.


Version 7.0.5 (March 29, 2011)
====================================
Fixes
-----
1. Problem:
      CQ53704 Diag Fails the D01 Test when testing in NPAR mode in 20G

   Cause:
      NPAR wasn't configured to 20G

   Change:
      Expand NPAR speed configuration to 20G

   Impact:
      57840 - 20G with NPAR

2. Problem:
      Upgrading last image in EXTENDED_DIR does not use the same
      location in NVM.

   Cause:
      Check if current entry in EXTENDED_DIR has the same image type
      (as the image to be upgraded) was missing for the last entry in
      EXTENDED_DIR.

   Change:
      Added check if EXTENDED_DIR entry has the same image type
      as the image to be upgraded, for the last entry as well.
      This entry's location in NVM will thus be considered as
      empty location, that can be used.

3. Problem:
      CQ53779 Cont. "ediag" fails C4 Timers test on 57800 3'rd device.

   Cause:
      Tests C4 should have been excluded from testing in 4-port mode
      on port > 0.
      ediag did not check is_4port_mode before deciding whether or not
      to skip these tests.

   Change:
      Changed the location of is_4port_mode check.

   Impact:
      57800.

4. Problem:
      CQ52272 (Cont.) SYSOP mode programming NICP MAC addresses sets only
      8 primary MAC addresses instead of expected 16 addresses when -asiccnt 2.

   Change:
      Incase of -assicnt 2 need to program NICP mac addresses of the second ASIC.
      Also fixed the MAC addresses enumeration.

5. Problem:
      On 578xx-KR, when speed is auto, and speed capability mask is limited
      to 1G, link will still come up at 10G.

   Cause:
      During autoneg, the advertised speeds were set according to D3 speed
      capability mask instead of D0 speed capability mask

   Change:
      Use D0 speed capability mask instead of D3

   Impact:
      578xx-KR

6. Problem:
      Link may not come up after SFP+ module plug in on BCM8726 based boards

   Cause:
      Module detection was not triggered by module insertion, which may lead to
      incorrect setting of EDC mode
      GPIO3 was not set as input to enable receiving module plug-in/out interrupt

   Change:
      Initialize AEU before collecting the group of signals in charge for
      generating interrupts. In addition, set GPIO3 to input to allow receiving
      module plug-in/out interrupts

   Impact:
      BCM8726 based boards
      Introduced in 5.2.50

7. Problem:
      NVM CFG would show all fields regardless of Device ID.

   Cause:
      NVM CFG assumed that Device ID value was given in hex.

   Change:
      Fixed the script code that assumed the hex format of Device ID.

   Impact:
      Introduced in 7.0.3

8. Problem:
     (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only applies to
     10G.

   Change:
      Remove 1G XAUI short detection.

   Impact:
      8727 and 8706 PHYs.

9. Problem:
     L2 traffic tests fail with host loopback on 578xx in 4-port mode.

   Cause:
      Slave device (-hlb) was set to 20G speed (instead of 10G).

   Change:
      Check link capabilities and set slave device link speed accordingly.

   Impact:
      578xx 4-port mode only.


Enhancements
------------
1. Request:
     CQ52272 (Cont.) SYSOP mode option "-nicp_mac" should display
     the NICP MAC addresses, at the end of programming and testing.

   Change:
     As requested.

2. Request:
      Add support for SWIM5, SWIM6, SWIM7, SWIM8 images.

   Change:
      As requested.

3. Request:
      Add MOD_ABS support for 578xx SFP+ modules
      Fix I2C and EPIO settings of nvram

   Change:
      As requested.

   Impact:
      578xx

4. Request:
      Invert OPTRXLOS signal on SFP/XFP interface for 578xx

   Change:
      As requested.

5. Request:
      Add option to "bar" command which writes a buffer to a given offset
      on a requested bar.

   Change:
      As requested.
      Usage: "bar <bar index> buffer <offset> [list dword1 dword2 dword3 etc.]"

Version 7.0.4 (March 21, 2011)
====================================
Fixes
-----
1. Problem:
      No fan failure notification when the fan failed and nvram option 83 is set
      to enabled.

   Cause:
      The fan failure worked only for specific external PHYs and not according
      to option 83.

   Change:
      Enable fan failure regardless of the PHY type if option 83 is set to
      enable.

   Impact:
      No fan failure notification unless the PHY is SFX7101, BCM8073, BCM8481,
      BCM84823 or BCM84833 - other PHYs or designs without external PHY will not
      report fan failures (but the FW will stop the PHY).

2. Problem:
      CQ53694 upgrade/downgrade the BC deletes the NCSI image.

   Cause:
      The code which deletes BC and NCSI images upon upgrade to MFW was
      called by mistake upon BC upgrade as well.

   Change:
      Upon BC upgrade, do not delete previous BC nor NCSI images (only
      delete MFW and SWIM images if exist).

   Impact:
      Introduced in 7.0.2 (during fix to CQ53216)

3. Problem:
      CQ53779 Running "nictest" on 57800 fails C4 Timers test on the 3'rd device.

   Cause:
      Tests C4,C5,C6 should have been excluded from testing in 4-port mode
      on port > 0.

   Change:
      Fixed "nictest" implementation to exclude tests C4,C5,C6 in 4-port mode
      on port > 0.

   Impact:
      57800.

4. Problem:
      CQ53780 A41 Block MSTAT0 Register Test fails when NCSI is enabled.

   Cause:
      Some registers (e.g. MSTAT0_REG_RX_STAT_GRBYT_LO) reset value is
      not as expected.

   Change:
      Reset XMAC0,1 prior to test to avoid incoming NCSI traffic, which
      changes counters registers.

   Impact:
      578xx.

Enhancements
------------
1. Request:
      Honor GPIO configuration values on Tx laser control, on top of existing
      EPIOs.

   Change:
      As requested.

   Impact:
      578x0 SFP+ designs.

2. Request:
      Link support for Everest 57810 + 84833B0PHY.

   Change:
      As requested.

   Impact:
      Everest 57810 + 84833B0PHY combination can pass traffic for testing.

3. Request:
      Add SGMII support for a specific OEM design.

   Change:
      Clear signal detect and configure internal PHY before BCM54618SE
      establishes link.

   Impact:
      SGMII ports of 57800 only.

4. Request:
     (CQ52000 & CQ51697) Short on XAUI lanes on the MAC side of 8727 and 8706
     PHYs needs to generate link down event.

   Change:
      Tx fault detection has been added. In addition link qualification includes
      checking for Tx fault. The fault detection bit is read twice to clear
      any stale value.

   Impact:
      8727 and 8706 PHYs.

5. Request:
      Support added for E3 + 84833B0 PHY firmware upgrade.

   Change:
      As requested.

   Impact:
      E3 + 84833B0 PHY combinations.

Version 7.0.3 (March 10, 2011)
====================================
Fixes
-----
1. Problem:
      Nictest failed A15 in the second iteration on 57840

   Cause:
      Tests A33 on device 3 accessed wrong register address.

   Change:
      Fixed access to IGU register, missing braches in address calculation
      according to function number.

   Impact:
      57840 Only.
      Introduced 7.0.0.14.

2. Problem:
      nvm cfg values of npar and npar-sd were displayed only if their mf_mode
      is active.

   Cause:
      relevant tcl environment variables were set only if the mf_mode is
      suitable.

   Change:
      Show npar and npar-sd nvm values if and only if the relevant nvm images
      exist (NIC_PRTION for nic; NIV and NIV_PROFILES for npar-sd).
      This is the only condition for display of these fields.

   Impact:
      57712 and 578xx.

3. Problem:
      If adding/deleting npar and npar-sd images while application is up,
      the decision whether to display these fields was not updated
      accordignly. There was a need to exit and re-enter ediag to see/hide
      those fields.

   Cause:
      relevant tcl environment variables were updated only during application
      init.

   Change:
      Update relevant tcl env vars after each nvm operation.

   Impact:
      57712 and 578xx.

4. Problem:
      Check if there is enough room in NVM for new image added the MFW1 image size
      twice to the calculation.

   Cause:
      MFW1 image size was added to calculation as bootstrap code len and also
      inside the extended dir total byte count.

   Change:
      Reduce MFW1 size from total size if exists.

   Impact:
      57712 and 578xx.

7. Problem:
      CQ52900 Limitation of load.sh to take more than one argument.

   Cause:
      ./load.sh line ./lediag $extra_arg $@ is missing inverted commas.

   Change:
      ./load.sh changed line ./lediag $extra_arg "$@".

   Impact:
      57712 and 578xx.

8. Problem:
      (CQ53111) C10 PRBS test fails after running D1 test

   Cause:
      PRBS test doesn't require loading the driver

   Change:
      Test PRBS purely without involving the driver load procedure

   Impact:
      578xx.

9. Problem:
      "driver load" after "reset_chip" fails with lm_chip_start failed.

   Cause:
      "mcp reset" is required after "reset_chip" before attempt
      to load the driver.

   Change:
      "reset_chip" includes by default "mcp reset".
      To run "reset_chip" without "mcp reset" use "reset_chip 1"
      TCL scripts were changes accordingly.

   Impact:
      57712 and 578xx.

10. Problem:
      Running A33 MSIX test via "nictest" fails with dbgBreak().

   Cause:
      The function save_msix_table() access HC registers
      instead of IGU registers on 578xx device.

   Change:
      Replaced check of is_e2() with is_e1x() in the function
      save_msix_table().

   Impact:
      578xx.

Enhancements
------------
1. Request:
      Added idle check for "close the gates" in PSWRQ.

   Change:
      As requested.

2. Request:
      Add initial support for 1G over fiber

   Change:
      As requested.

   Impact:
      578xx fiber

3. Request:
      CQ#50798 Add support for BCM8722

   Change:
      As requested.

4. Request:
      Add NVM default configuration for A1202G board.

   Change:
      As requested.

5. Request:
      Add unique SDID for the 1G port of T0000G and the 20G port of T40000G_2P

   Change:
      As requested.

Version 7.0.2 (March 2, 2011)
====================================
Fixes
-----
1. Problem:
      No link on second port of 578xx 2x10G-SFI

   Cause:
      Incorrect nvram settings

   Change:
      Fix nvram settings that controls the tx laser

   Impact:
      57810 2x10G-SFI

2. Problem:
      CQ53216 MFW upgrade failed with "Not enough space in NVM" message.

   Cause:
      Diag checks if there is sufficient room in NVM for the new MFW,
      without deducting the older MFW image size.

   Change:
      Fixed check if there is enough room in NVM for updated MFW, so that
      older MFW and SWIM images size (or BC and NCSI images size) is deduced
      from the total used byte count.
      If there is enough room for update MFW, first delete the older
      MFW and SWIM images first, then upgrade to new MFW and SWIM images.

   Impact:
      Introduced 7.0.0.9

3. Problem:
      Possible failure to upgrade image in NVM due to false error
      "Not enough space in NVM".

   Cause:
      Check is there is enough room in NVM did not deduce the older
      image byte count.

   Change:
      Fixed check if there is enough room in NVM to deduce the older
      image byte count, if there is an image of the same type.

4. Problem:
      Upgrading image in extended_dir did not consider the older image place
      as a free place.

   Cause:
      common_nvm_find_room() did not skip extended_dir entry incase of the same
      image type as the image to be upgraded.

   Change:
      common_nvm_find_room() continues to next extended_dir entry if the image
      type of this entry is the same as the image to be upgraded.


5. Problem:
      CQ53066 Upgrading FCOE Boot Image from 6.0.x to 6.4.13 fails
      with DEBUG BREAK "invalid version format for FCOE"

   Cause:
      FCOE version 6.0.x format (x.x.x) was not as expected by diag (vx.x.x).

   Change:
      Diag accepts FCOE version of both formats.

6. Problem:
      CQ53111 C10 test fails when running nictest the second time.

   Cause:
      Test C10 fails when performed after D1 test.
      XMAC loopback was not removed at the end of D1 test, which
      caused test C10 to fail.

   Change:
      Remove internal loopback at the end of test D1 (by setting
      back lmdev set_medium to EXT_LB).

7. Problem:
      CQ51134 NC-SI functionality dependant on Port initialization
      Sequence

   Cause:
      During common init, the driver resets both BMACs such that if
      NCSI was enabled on the other port, it will stop working

   Change:
      BMAC will be reset during port initialization only

   Impact:
      5771x with NCSI enabled

8. Problem:
      CQ53370 After upgrading PHY FW, a commnent would display to upgrade the
      other port as well even when it is not required.

   Cause:
      The reminder was constant and always displayed.

   Change:
      Update the comment to indicate that it is requried on some boards.

9. Problem:
      CQ53326 C4 "Timers test" fails on 578xx T400G_4P device 4

   Cause:
      Test should not run on funcions > 0 in 4-port mode.

   Change:
      Fixed check of environment variable ENV_FUNC.

   Impact:
      UEFI only.
      Fix was already done on other OS, missed in UEFI.

10. Problem:
      CQ53217 A33 "Interrupt test with MSIX functionality" fails
      when NCSI is enabled and there is NCSI traffic.

   Cause:
      Idle_chk after test failed with Error if no traffic (level 2):
      NIG: Port 0 RX MCP descriptor FIFO is not empty. Value is 0x0.

   Change:
      This idle_chk severity was changed to warning since RX MCP
      descriptor FIFO could be not empty when there is NCSI traffic.

   Impact:
      Only when NCSI traffic and NCSI enabled.


Enhancements
------------
1. Request:
      Support compilation on Linux Kernel 2.6.38 or newer.

   Change:
      Changed the call to pci_restore_state function that no longer has return
      value.

2. Request:
      Add BCM8722 PHY entry.

   Change:
      Added it into NVRAM configuration menu.

3. Request:
      Exclude NIG_REG_XGXS0_LINK10G_DXGXS1, NIG_REG_XGXS1_LINK10G_DXGXS1
      registers from testing (test A12)

   Change:
      As requested.

4. Request:
      Update idle_chk.tcl, some errors were changed to error_no_traffic
      (error incase of no traffic only).

   Change:
      As requested.

5. Request:
      Restore two SMBus nvm cfg options:
      62 SMBus Address
      71 SMBus Timing

   Change:
      As requested

Version 7.0.1 (February 24, 2011)
====================================
Fixes
-----
1. Problem:
      CQ52952 UEFI ediag "unexpected trap" failure when running
      in manufacture mode.

   Cause:
      Use of Tcl_GetVar2Ex() to get environment variable ENV_FUNC value
      causes UEFI "unexpected trap" failure.

   Change:
      Replaced use of Tcl_GetVar2Ex() with Tcl_GetVar2() instead.

   Impact:
      UEFI only.

Enhancements
------------
1. Request:
      CQ53185 Sysop command line option "-m" should support new scanned label
      that includes two MAC addresse in the format "mac_addr1; mac_addr2".

   Change:
      Added to ediag option "-m" check of character ';'.
      When this character is detected, it is ignored along with the following
      mac address.

   Impact:
      For SYSOP production line.

2. Request:
      Reduce diag code size due to DOS compilation error out-of-memory.

   Change:
      Removed hw_debug.c from diag compilation.

   Impact:
      lm_get_packets_sent() will not check lm_idle_chk()
      in DOS, UEFI, LINUX diag.

3. Request:
      Translate 10G-Force KR and 1G-Force KR to autoneg with advertisement of
      10G and 1G in accordance

   Change:
      As requested.

   Impact:
      578xx KR interface

4. Request:
      Support NVRAM configuration of EPIO assignment on Tx laser control.

    Change:
      As requested.

    Impact:
      578xx SFP+ interface, existing boards with this parameter
      unconfigured should still work using hardcoded default EPIO.

5. Request:
      Add NVM default configuration for E0002G and E0003G board.

   Change:
      As requested.

Version 7.0.0.14 (February 22, 2011)
====================================
Fixes
-----
1. Problem:
      System locks up after loading driver on 1Gb copper ports

   Cause:
      Incorrect interrupt acknowledge when link change occurs lead to interrupt
      storm

   Change:
      Acknowledge the interrupt correctly on 1G ports

   Impact:
      578xx with 2x1G and 2x10 port
      Introduced in 7.0.0.12

2. Problem:
      grc timeout occured when performing nvm cfg opertaions in serial mode.

   Cause:
      BAR_ME_REGISTER was read in order to get path num, port num and absolute
      function num. That register is not accessible through UART controller
      and causes grc timeout.

   Change:
      In serial mode path num, port num and absolute func num can be found
      directly from device index, as all interfaces are "exposed" in
      serial mode.

   Impact:
      All boards, serial mode only.


3. Problem:
      When resetting/disabling link in 578xx boards output for TX PAUSE
      signal to the MAC is not disabled.

   Cause:
      Relevant register in the NIG is not cleared when link is disabled.

   Change:
      Set value to 0 in that register if link is disabled.

   Impact:
      578xx boards.

4. Problem:
      During "nictest" a mesage is shown "Unknown ID - 39, ignoring 39="

   Cause:
      "Nictest" uses "nvm cfg 39" to check whether or not to perform the
      C7,C9 SERDES tests.
      This "nvm cfg "option was recentlly removed from 57712, 578xx,
      since there is no SERDES on these chips.

   Change:
      Do not check "nvm cfg 39" on 57712, 578xx.

   Impact:
      57712, 578xx boards.
      Introduced 7.0.13

5. Problem:
      CQ52843 "nvm upgrade -mfw" shows messgae "Invalid NVM Directory Index".

   Cause:
      Attempt to delete BC and NCSI which did not exist.

   Change:
      Do not attempt to delete BC and NCSI if they do not exist.

   Impact:
      Introduced 7.0.0.9

6. Problem:
      grcDump still causes parity errors in some HW Blocks.

   Cause:
      Parity masking order for some blocks was incorrect.

   Change:
      Fixed the order of masking.

   Impact:
      Introduced in 7.0

7. Problem:
      CQ52990, CQ53111 PRBS (C10) test fails on second device on T4000G_2P

   Cause:
      Inaccurate test preparation

   Change:
      Fix test configuration.

   Impact:
      57840 2x20G

8. Problem:
      Diag fail after XMAC loopback (D1) test for 578xx 10G-KR

   Cause:
      Undetermined link speed led to unexpected behavior

   Change:
      If no speed is selected, determine 10G link speed.

   Impact:
      578xx with 10G-KR
      Introduced in 7.0.0.9

9. Problem:
      Nictest test A15 fails when runs after test A33,A34 with errors:
      Reset value is different then expected on registers
      PXP_REG_HST_INCORRECT_ACCESS_DATA
      PXP_REG_HST_INCORRECT_ACCESS_VALID
      PXP_REG_HST_INCORRECT_ACCESS_ADDRESS

   Cause:
      Tests A33,A34 accessed wrong register address.

   Change:
      Fixed access to IGU register, added missing multiple by 4.

   Impact:
      Introduced in 7.0.0.7


Enhancements
------------
1. Request:
      CQ52000 Short on XAUI lines between Everest 2 and 8727 PHY needs to
      generate link down event.

   Change:
      Tx fault detection has been added. In addition link qualification includes
      checking for Tx fault.

2. Request:
      CQ50205 Implement additional VPD commands display/modify VPD information

   Change:
      Added new diag commands to support display/modify of VPD fields in
      VPD image or in VPD location in NVM.
      New VPD commands usage:
      "vpd show"
      "vpd read <VPD field>"
      "vpd write <VPD field> <value>"
      "vpd delete <VPD field>"

3. Request:
      Do not exclude A33,A34 MSI/MSIX tests on 578xx B0 emulation
      nor on 4-port mode, since these tests support now Backward-Compatible
      and 4-port modes.

   Change:
      As requested.

4. Request:
      Add to "lmdev" command an option to set LM parameter e3_cos_modes.

   Change:
      Added "lmdev set_cos_mode <0-BC 1-COS3 2-COS6>"

5. Request:
      Add support for swappable image #4 (SWIM4)

   Change:
      As requested


Version 7.0.0.13 (February 14, 2011)
====================================
Fixes
-----
1. Problem:
      NPAR nvm cfg values were not hidden even if mf_mode was not NPAR
      (and specifically not NPAR-SD).

   Cause:
      Wrong implementation.

   Change:
      Fix implementation that NPAR nvm cfg values will be visible if and only
      if mf_mode is NPAR.

   Impact:
      57712 and 578xx.

2. Problem:
      CQ52735 Diag Fails the D01 test on T4000G_2P (2X20G)

   Cause:
      XMAC loopback requires clock from the Warpcore, when requested
      speed is 20G.

   Change:
      Initialize Warpcore to 20G looback mode so that the link would provide
      the clock to the XMAC

   Impact:
      57840 20G mode

3. Problem:
      CQ52328 I_B_CFG section is preserved when programing golden image
      in production line (even if corrupted).

   Cause:
      "nvm prg" implementation default behaviour is to preserve I_B_CFG section
      (per CQ30356).

   Change:
      Added command line option "-force_ibcfg" which should be used to force
      programming I_B_CFG section.

4. Problem:
      CQ#1037 ediag reports incorrect SRAM addr for WC and PCIE microcode
      entries in "nvm dir"

   Cause:
      "nvm upgrade" assumes the image will be loaded on SRAM unless it is told
      otherwise.

   Change:
      Added code to set WC and PCIE sram to 0 since they are not loaded on SRAM.

5. Problem:
      CQ52846 Lediag fails A15 PXP registers test

   Cause:
      Driver (via ecore) sets the value 0x3fffffff to PXP_REG_PXP_PRTY_MASK
      in E2 (instead of 0x7fffffff).

   Change:
      Driver was changed to set the value 0x7ffffff to PXP_REG_PXP_PRTY_MASK
      in E2.

   Impact:
      57712 and 578xx.
      Introduced 7.0.0.9

6. Problem:
        NVM CFG option <id>-<id> breaks when second <id> is not a number. In addition, an error
        would appear when pressing 'q' in the middle of printing.

   Casue:
        TCL did not check that second ID is a number and, in addition,
        when printing more than a page (24 lines) and pressing 'q', TCL returns an error.

   Change:
        Added check to NVM_CFG script and specific error handling for pressing 'q' in the
        middle of printing.

        Impact:
         Introduced in 7.0.0.12.

7. Problem:
        CQ52964 10G-KR doesn't link up on an OEM design.

   Cause:
        CL72 should not be disabled in KR environment.

   Change:
        Removed codes that disables CL72.

   Impact:
        578xx 10G-KR

8. Problem:
        Applying nvm cfg for 57712 board is failing

   Cause:
        Internal script error due to removal of port mode field

   Change:
        Fix nvm cfg script to avoid port mode field for 57712.

   Impact:
        57712
        Introduced in 7.0.0.9

9. Problem:
      Failures after running C08 (XGXS Register access test) on 57712/578xx
      single port boards.

   Cause:
      In case of single port boards, C08 hard-coded force reset that on
      57712/578xx caused the PCI not to function.

   Change:
      Fixed the reset routine in 57712/578xx single port.

   Impact:
      57712/578xx Single port designs only.

10. Problem:
      (CQ51508) linkdump script might cause a side effect of device swap.

   Cause:
      Script didn't force return to same device it was triggered from.

   Change:
      Fix linkdump script.

   Impact:
      57712 and 578xx boards.

11. Problem:
      D1 MAC loopback test does not set speed to 20G on 578xx emulation.

   Cause:
      MCP does not exist, thus 20G capabilities are not set.

   Change:
      On 578xx emulation (and not in 4-port mode) set speed to 20G.

   Impact:
      578xx Emulation Only.
      "Driver load" default settings was 20G though test did not set link to 20G.

12. Problem:
      D7 TOE test does not set speed to 20G.

   Cause:
      D7 test did not check 20G capabilities.

   Change:
      Add to D7 test check of 20G capabilities.

   Impact:
      578xx Only.

Enhancements
------------
1. Request:
      CQ52584 Add command line option "-no_swap", not to prompt for hot-swap to
      a new board in -sysop mode.

   Change:
      As requested.

2. Request:
      Update the grouping feature for nvm cfg.

   Change:
      a. Group number is also printed.
      b. Changed title of all groups list.
      c. Separator of groups is a full line.
      d. Change groups names.

3. Request:
      Change default flow control for 578xx SFI ports from AUTO to BOTH

   Change:
      as requested

Version 7.0.0.12 (February 09, 2011)
====================================

Fixes
-----
1. Problem:
      Nictest test D2 PHY loopback test fails when tested after
      D3 external loopback test.

   Cause:
      Test D3 changes strip CRC mode by changing XMAC0/1_REG_RX_CTRL.
      This register value is not restored to its original value.

   Change:
      Added to chip_load utility in case of internal loopback mode,
      re-setting of XMAC0/1_REG_RX_CTRL.

   Impact:
      Introduced in 7.0.0.1.
      578xx Only.

2. Problem:
      Nictest test D3 PHY loopback test pass without external loopback plug
      when performed after D2 test

   Cause:
      Loopback settings weren't cleared upon test completion

   Change:
      Clear loopback settings upon test completion

   Impact:
      578xx Only.

3. Problem:
      Setting 4-port device configuration doesn't work

   Cause:
      New nvram option controls the port mode in 578xx

   Change:
      Fix nvm cfg script to get the port mode from the new nvm option

   Impact:
      578xx-4Port Only.
      Introduced: 7.0.0.8

4. Problem:
      Setting link speed to 20G doesn't work on 578xx B0 emulation in MF mode.

   Cause:
      LM had a maximum bandwidth limit of 100*100Mbps (10G),
      incase there is no MCP.

   Change:
      Fixed lm_get_shmem_info() setting of mf_info->max_bw[i] from 100 to 200.

   Impact:
      578xx Emulation MF mode only.


Enhancements
------------
1. Request:
     MSI/MSIX test should run in non-BC mode and support 4-port mode.

   Change:
     As Requested.

2. Request:
     Add to "l2spec" support for NPAR-SD.

   Change:
     As Requested.

3. Request:
     Arrange the "nvm cfg" groups logically.

   Change:
     As Requested.

4. Request:
      LM modules support/restore "Basic VF" functionality.

   Change:
     As Requested.

5. Request:
      The "nvm cfg" utility was upgraded with some grouping related enhancements.

   Change:
      a. Added <ID>-<Optional ID> feature to show grouping information about a group of IDs.
          b. In both the group selection menu (list-groups) and the group command, the user can choose either name or group number.
          c. changed groups command to list-groups.
          d. Enabled usage of prefix for commands instead of the whole commands.
          e. nvm dump is also divided into groups.

Version 7.0.0.11 (January 26, 2011)
===================================

Fixes
-----
1. Problem:
      L4 tests in background fail when running on VF.

   Cause:
      Attempt to read license from NVM, fails on VF.

   Change:
      Don't check license when running in background.

   Impact:
      Introduced in 7.0.0.1

2. Problem:
      GRC Dump parses RDF for 578xx before parsing correct file.

   Cause:
      Wrong identification of Chip number in early stages of GRC Dump.

   Change:
      Fixed identification of chip.

   Impact:
      Introduced in 7.0.0.10

3. Problem:
      CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon
      loading/unloading.

   Cause:
      Microcontroller and Driver both controlling Xaui Low Power Mode.

   Change:
      Remove Driver control of Xaui Low Power Mode.

   Impact:
      8073 PHY based boards.

4. Problem:
      CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default 0 to
      prevent reset & power down of PHY.

   Cause:
      When GPIO controls TX Laser on 8727 and 8706, turning off laser will put
      PHY in low power mode.

   Change:
      Set TXONOFF_PWRDN_DIS accordingly.

   Impact:
      8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0.

Enhancements
------------
1. Request:
     Change location of RDF files to Diag\common\scripts.

   Change:
     As Requested.

2. Request:
     Add autoneg parallel detect and pause support for 578xx KR

   Change:
     As requested

   Impact:
     578xx-KR

3. Request:
      CQ52272 Add to SYSOP mode programming NICP MAC addresses support.

   Change:
      Added "-nicp_mac" command line option.
      When this command line option is used, 16 NICP MAC addresses will be
      programmed via an appropriate NIC_PRTION image.

Version 7.0.0.10 (January 19, 2011)
===================================
Fixes
-----
1. Problem:
      CQ52277 Diag Fails D4 LSO test on 57840 (2x20G)

   Cause:
      ELINK initialization procedure elink_init_xmac_loopback
      was set to speed 10G instead of 20G.

   Change:
      Changed ELINK initialization procedure to set the required
      speed from elink parameters.

   Impact:
      57840 (2x20G)
      Test D4 still fails when runs after test D2 PHY loopback test.

2. Problem:
      Unable to upgrade to BC image which includes PCIE, Warpcore images.

   Cause:
      Allowed PCIE, Warpcore images as part of MFW image only.

   Change:
      Allow PCIE, Warpcore images as part of BC image also for
      backward compatibility.

   Impact:
      Introduced in 7.0.0.9, 578xx only.

3. Problem:
      578xx unable to link after unload-load sequence.

   Cause:
      Incomplete reset sequence

   Change:
      Fix reset sequence

   Impact:
      578xx

4. Problem:
      GRC Dump on 578xx always uses RDF for B0 revision.

   Cause:
      Incorrect identification of revision.

   Change:
      Fixed the identification of B0 revision.

   Impact:
      Introduced in 7.0.0.9, 578xx only.

5. Problem:
      Nictest D7 TOE test fails when "nvm cfg" option 127 "Force KR enabler"
      is set to to "GPIO3_P0(4)".

   Cause:
      Link is not up.

   Change:
      Removed fixed settings of 10G "lmdev set_speed 10G".
      Fixed LM handling of the KR enabler nvram setting.

   Impact:
      Introduced in 7.0.0.9.

6. Problem:
      57800 GPHY port (SGMII) LEDs don't work.

   Cause:
      The LED setting routine is called only on 10G link.

   Change:
      Call the LED setting routine even for non-10G link.

   Impact:
      578xx

Enhancements
------------
1. Request:
     Updated 578xx B0 RDF file.

   Change:
     As Requested.

2. Request:
     Do not allow to upgrade MFW on 57712 chip rev A0.

   Change:
     As Requested.

3. Request:
     Add grouping of fields for "nvm cfg"with ability to configure fields
     and view fields per group.

   Change:
     As Requested.

4. Request:
     Add LM error recovery (lm_er.c) to makefiles.

   Change:
     As Requested.

5. Request:
     Preserve temperature input setting for PCIE and Warpcore
     Serdes equalization logic.

   Change:
     As requested, Warpcore initialization is now preserving
     that register value (no longer blindly overwrite it).

   Impact:
     578xx

Version 7.0.0.9 (January 13, 2011)
===================================

Fixes
-----
1. Problem:
      Nictest test C3 CAM Search test fails on 57711.

   Cause:
      Missing variable done_val for 57711.
      cam_done_addr was incorrect for 57711.

   Change:
      Added missing done_val settings for 57711.
      Fixed cam_done_addr for 57711.

   Impact:
      Introduced in 7.0.0.3.
      57711 Only.

2. Problem:
      nvm crc computed value in Big Endian architecture was wrong.

   Cause:
      Missing byte swapping to computed value.

   Change:
      Added byte swapping.

   Impact:
      BE architecture only.

3. Problem:
      A12 NIG register test fails on 578xx B0 emulation.

   Cause:
      Some NIG_REG_TSGEN_* registers should be skipped from testing.

   Change:
      Exclude the following registers from testing:
      NIG_REG_TSGEN_CTRL, NIG_REG_TSGEN_TSIO_OUTPUT_CONTROL
      NIG_REG_TSGEN_DRIFT_T0, NIG_REG_TSGEN_TSIO_INCTL_T0,
      NIG_REG_TSGEN_TSIO_OUTCTL_T0, NIG_REG_TSGEN_DRIFT_T1
      NIG_REG_TSGEN_TSIO_INCTL_T1, NIG_REG_TSGEN_TSIO_OUTCTL_T1

   Impact:
      578xx B0 emulation.

4. Problem:
      B10 NIG memory test fails on 578xx B0 emulation.

   Cause:
      Some NIG memories, several of them are WB read-only,
      should be excluded from testing.

   Change:
      Exclude NIG_REG_TSGEN_* memories from testing.

   Impact:
      578xx B0 emulation.

5. Problem:
      B28 IGU memory test fails on 578xx B0 emulation.

   Cause:
      IGU_REG_MAPPING_MEMORY should be excluded from testing on emulation.

   Change:
      Fixed typo in line which added IGU_REG_MAPPING_MEMORY to the memory
      exception list.

   Impact:
      578xx B0 emulation.

6. Problem:
      CQ51679 lediag fails on C10 test (PRBS test)

   Cause:
      PRBS test doesn't work in 2x20G mode

   Change:
      When PRBS test runs in 2x20G mode, run the PRBS test on the two lanes
      of the 20G port seperatly as if they are set in 10G

   Impact:
      578xx

7. Problem:
      CQ52144 "nvm prg" overwrites MAC addresses in NIC_PRTION table.

   Cause:
      Original NIC_PRTION mac addresses weren't saved properly before
      programming the new image.

   Change:
      Save original NIC_PRTION mac addresses before programming new image.

   Impact:
      Introduced in 6.0.17

Enhancements
------------
1. Request:
     Add support in loading bootcode of the new scheme.
     Usage: nvm upgrade -mfw <MFW+SWIM image>

    Change:
     As Requested.
     Upgrading to MFW+SWIM deletes old bootcode version.

2. Request:
      Add port layout setting for 578xx which replaces port_mode,
      path_swap and port_swap. This single nvram option 166 now enables to
      declare the port layout for each board in user friendly manner

   Change:
      As requested.

   Impact:
      578xx boards
      Required bootcode 7.0.2 to support this

3. Request:
      Add configurable settings for PINs controlling the PHY and SFP+ modules

   Change:
      The following options were added to the nvram (Still not implemented)
      157: [P] SFP+ Enable TX laser
      158: [P] SFP+ Fault module LED
      159: [P] SFP+ Module absent
      160: [P] SFP+ Power disable
      161: [P] SFP+ Tx Fault
      162: [P] PHY reset
      163: [P] PHY power down
      164: [S] I2C Mux pins template
      165: [P] I2C Mux pins value

   Impact:
      578xx boards

4. Request:
      Support SGMII with 54618SE GPHY for 57800.

   Change:
      As requested.

   Impact:
      Devices 3 and 4 of 57800 and small Warpcore changes only.

5. Request:
      Hide "nvm cfg" option 117 mac partition num of partitions, no longer supported.

   Change:
      As requested.


Version 7.0.0.8 (December 28, 2010)
===================================
Fixes
-----
1. Problem:
      "nvm dir <image name>" when image is in extended dir, shows the
      extended dir offset in NVM, instead of requested image offset.

    Cause:
      Output string showed the extended dir offset instead of image offset.

    Change:
      Fixed output string to show the requested image offset in NVM.

2. Problem:
      Nictest A35 IGU registers test fails on 578xx B0 emulation.

    Cause:
      IGU_REG_MAPPING_MEMORY testing fails due to forces on palladium.

    Change:
      Exclude IGU_REG_MAPPING_MEMORY on 578xx emulation.

    Impact:
      578xx revision B0 emulation.

3. Problem:
      CQ51931 Nictest A12 NIG Register Test fails on device 1 when
      MF enabled on device 3.

    Cause:
      NIG_REG_XGXS1_SPEED_10000_LR_SR reset value different than expected.

    Change:
      NIG_REG_XGXS1_SPEED_10000_LR_SR should be excluded from testing, along
      with other warpcore LED status registers.

    Impact:
      578xx only when MF enabled.

4. Problem:
      Nictest tests A33, A34 MSI/MSIX did not free allocated memory incase
      of failure.

    Cause:
      Incase of failure, procedure returned without free memory.

    Change:
      free memory incase of failure also.

5. Problem:
      Nictest A12 NIG registers test fails on 578xx B0 emulation.

    Cause:
      Testing registers NIG_REG_P0_RX_PTP_TS_MSB_ERR, NIG_REG_P0_TX_PTP_TS_MSB_ERR
      NIG_REG_P1_RX_PTP_TS_MSB_ERR, NIG_REG_P1_TX_PTP_TS_MSB_ERR fails.

    Change:
      Exclude registers NIG_REG_P0_RX_PTP_TS_MSB_ERR, NIG_REG_P0_TX_PTP_TS_MSB_ERR
      NIG_REG_P1_RX_PTP_TS_MSB_ERR, NIG_REG_P1_TX_PTP_TS_MSB_ERR from testing.

    Impact:
      578xx revision B0 emulation.

Enhancements
------------
1. Request:
      Remove NIV profiles list data (per port) from NIV image to a new
      image in the extended dir (NIV_PORT_PROFILE image)

   Change:
      As requested. Added new image (reflected in nvm cfg #142).

2. Request:
      Remove NIV profiles bitmap from NIV NVM image, and it this field to
      shmem2.

   Change:
      As requested. Added to shmem2 field for NPAR-SD profiles, and removed nvm
      cfg #141.

3. Request:
      Generate automatically NIV_PROFILES NVM image when writing to NIV image
      and NIV_PROFILE still doesn't exist.

   Change:
      As requested.

4. Request:
     (CQ51889, CQ51890) Add Common Mode Sense (CMS) enable/disable
     functionality

   Change:
      Adding field 156 to nvm cfg, as well as support in eLink.

   Impact:
      NVM config and Common Mode Sense capable PHYs.

Version 7.0.0.7 (December 23, 2010)
===================================
Fixes
-----
1. Problem:
      Nictest B4 CFC memory test fails on 578xx B0 emulation.

   Cause:
      Test did not skip CFC_REG_CID_CAM, CFC_REG_STRING_CAM,
      since chip revision is 0xC and not 0xE as was on previous chip's
      emulation setups.

   Change
      Fixed all TCL scripts to use utilities is_emul, is_fpga or
      is_sim as required instead of chip_rev.

   Impact:
      578xx B0 device.

2. Problem:
      Nictest A33, A34 int_msi/x tests fail on 578xx B0 emulation.

   Cause:
      These tests run in BC mode, which is not supported in 578xx B0.

   Change
      Exclude tests A33,A34 on E3 B0 or emulation.

   Impact:
      578xx B0 device.

3. Problem:
      BCM8727 Link LED not funtioning properly during BACS LED test.

    Cause:
      Not blinking correct link light.

    Impact:
      BCM57712 + BCM8727 based boards.

4. Problem:
      CQ51698 - GPIO read command reading only from port 0

    Cause:
      In 57712, path id is used instead of port id in global registers

    Change:
      Use path id instead of port id when reading gpio register.

    Impact:
      BCM57712

 5. Problem:
       CQ51134 - NC-SI functionality dependant on Port initialization
       Sequence

    Cause:
       When the driver loads the first port, some PHYs require reset
       and loading their microcode on both ports. In case NCSI was
       enabled on the other port, the traffic was stopped since PHY
       was reset

    Change:
       Load PHY microcode during common init, only if the PHY
       microcode wasn't loaded.

    Impact:
       Requires bootcode 6.2.9 and above to resolve this problem
       PHY firmware upgrade will require reboot from now on

 6. Problem:
       CQ51367 - BCM84823/84833 activity LED blinks at lower rate on
       10G link.

    Cause:
       The activity LED control registers are not configured right.

    Change:
       Enabled activity LED stretch_en bit. Made activity LED blink on
       source.

    Impact:
       BCM57712 + BCM84823/84833 based boards.

 7. Problem:
       CQ51653 Nictest D2 Phy loopback test fails on 578xx 2x20G mode.

    Cause:
       The lm_init_phy() function over written the 20G speed setting
       when configuring XGXS loopback.

    Change:
       Do not over-write speed settings incase speed > 10G.

    Impact:
       578xx 2x20G mode.
       D2 still fails on device 2.


Enhancements
------------
1. Request:
      Add new commands which will enable changing lmdev parameters:
      e2_integ_testing_enabled,
      e2_integ_def_cos_setting_0, e2_integ_def_cos_setting_1,
      e2_integ_def_priority_setting_0, e2_integ_def_priority_setting_1

   Change:
      Added new options to "lmdev" command:
      "lmdev enable_e3_integ"
      "lmdev disable_e3_integ"
      "lmdev set_cos <grp_index 0 or 1> <cos_value 0-7>"
      "lmdev set_priority <grp_index 0 or 1> <priority 0-7>

   Impact:
      578xx device.

2. Request:
      Change NVM default configuration for A1288 board.

   Change:
      Option 23) MBA protocol changed to NONE (instead of PXE)
      Option 29) Mngmt FW Enabled (instead of Disabled)
      Option 30) Mngmt FW type changed to NC_SI (instead of Default)
      Option 36) Speed capability changed to 0x50 (instead of 0x10)
      Option 107) MBA boot retry changed to 3 (instead of 0)

3. Request:
      Change NVM default configuration for A1260 board.

   Change:
      As requested.

4. Request:
      Add to idle_chk new checks on NIG block for 578xx device.

   Change:
      As requested.

5. Request:
      CQ51710 - Disable CMS (common mode sense) feature in 84823 PHY, as
      this reduces power consumption and allows a better 10G link stability.

   Change:
      Clear the CMS bit in PHY register in PHY configuration routine.

   Impact:
      BCM84823B based boards

Version 7.0.0.6 (December 15, 2010)
===================================
Fixes
-----
1. Problem:
      CQ51650 NVM auto mode not working.

   Cause:
      NVM Auto mask was incorrect.

   Change
      Fixed NVM Auto mask.

   Impact:
      578xx device.

2. Problem:
      Upgrading BC fails with error message which requests user
      to use the -F option to force upgrade.

   Cause:
      E3_WC version is N/A, thus diag refers to the image version
      and the version in NVM as the same, thus requires the -F option.

   Change:
      Changed common_nvm_image_version_validation() not to check
      E3_WC and E3_PCIE version.

   Impact:
      578xx device.

Enhancements
------------
1. Request:
      Skip some NIG registers in 578xx B0.

   Change:
      As requested.

   Impact:
      578xx device.


Version 7.0.0.5 (December 14, 2010)
===================================
Fixes
-----
1. Problem:
      grcDump on device 57800 fails with "can't read CHIPS(0x168a)"

   Cause:
      Device IDs 0x168a, 0x168d were not supported in grcDump CHIPS list.

   Change
      Added device IDs 0x168a, 0x168d to grcDump CHIPS list.

2. Problem:
      Running ediag with option -dev on 57800 device, fails C4 test
      on device 3.

   Cause:
      Test C4 should be excluded from testing on non-primary devices.

   Change
      Change -dev option to exclude tests on non-primary device, similar
      to running without the -dev option.

3. Problem:
      "nvm cfg" options: 54) "MII mode" 131) "Net Serdes Interface"
      132) "PCI Gen3" 133-135) "WC Lane swap configurations"
      shouldn't be visible on 57712 device.

   Cause:
      These "nvm cfg" options were excluded only when $::current(DID)
      equals 0x1662.

   Change:
      Exclude "nvm cfg" options 54, 131-135 when $::current(DID) equals
      0x1662 or 0x1663.

   Impact:
      57712 device.

4. Problem:
      "nvm cfg" options: 10) "Part Number" 54) "MII mode"
      shouldn't be visible on 578xx device.

   Cause:
      These "nvm cfg" options were excluded only on 57712 device.

   Change:
      Exclude "nvm cfg" options 10, 54 on 578xx device.

   Impact:
      578xx device.

5. Problem:
      NVM "Auto" mode write access doesn't work if flash_straps
      value different than 8.

   Cause:
      Need to check if flash_straps bit 3 is set.

   Change:
      Enable NVM "Auto" mode write access if flash_straps bit 3 is set.
      Change MCP_REG_MCPR_NVM_CFG2 CSB_W bits [15:8] to 0x40.

   Impact:
      578xx device.

6. Problem:
      Upgrading MBA image on 578xx board fails with error message
      "Unknown image with DID 0x168e & VID 0x14e4"

   Cause:
      common_nvm_update_mba_hdr() which validates vendor ID and
      device ID did not support 578xx device IDs.

   Change:
      Added to common_nvm_update_mba_hdr() support for 578xx device IDs.

   Impact:
      578xx device.


Enhancements
------------
1. Request:
      Add to idle_chk support of different idle checks for 578xx B0.

    Change:
      When chip mask bit 4 is set to "1", this check is performed on 578xx B0.
      Changed macro CHIP_MASK_CHK accordingly.

2. Request:
      Support PCIE GEN3 speed in "device" display.

    Change:
      Incase PCIE lane speed equals 3, as expected in GEN3, device display
      will show speed of "8.0".

3. Request:
      Add support to new image types for 578xx quad device:
      CODE_IMAGE_TYPE_FCOE_BOOT_CFG3, CODE_IMAGE_TYPE_FCOE_BOOT_CFG4,
      IMAGE_MAP_IDX_ISCSI_BOOT_CFG3, IMAGE_MAP_IDX_ISCSI_BOOT_CFG4;

    Change:
      As requested.

4. Request:
      Parse a different RDF file for 578xx revision B0.

    Change:
      As requested.

5. Request:
      Add MAC Memory and MAC VLAN to GRC Dump.

    Change:
      As Requested.

5. Request:
      Add support in loading bootcode of the new scheme

    Change:
      As Requested.

6. Request:
      Added the option to change location of rdf file for GRC Dump, by using
          the changeRdfDir command.

    Change:
      As Requested.


Version 6.4.X (December XX, 2010)
===================================
Fixes
-----
1. Problem:
      Test B32 BRB Full memory test fails on DOS ediag.

   Cause:
      TCL brb_mem_test.tcl script name too long for DOS,
      (8.3 naming convention).

   Change:
      Renamed TCL script to brb_mrm.tcl.

   Impact:
      DOS Only, 57712/578xx Only.
      Test B32 is not part of the default set of "nictest" tests.

2. Problem:
      Test C10 XGXS test fails on 578xx device if more than one
      board installed in setup.

   Cause:
      Port was set to $::current(DEV) which in this case is different
      than 1.

   Change:
      Set port to $::current(PCI_FUNC)*2.

   Impact:
       578xx Only when more than one board installed in setup.

3. Problem:
      CRC errors are seen with line-rate traffic on BCM578xx

   Cause:
      Warpcore microcode was not loaded, and its clock wasn't synchronized well

   Change:
      Load Warpcore microcode and apply clock compensation
      This change is a temporary work-around which will be embedded in the
      bootcode later on

   Impact:
       578xx Only

4. Problem:
     CQ50681 Device hangs on up/down test when PFC is enabled

   Cause:
     If the device is going down while in PFC Xoff it will not set it to Xon and
     therefore, on the next load it will remain in constant Xoff

   Change:
     Force PFC Xon when enabling the device

   Impact:
     57712 and 578xx

5. Problem:
      Running command "mcp decode shmem" in lediag causes segmentation fault

   Cause:
      Attempt to read from wrong shmem2_base address.

   Change:
      Fixed shmem2_base address.

6. Problem:
      NVM upgrade fails when bnx2x is up with misleading error message.

   Cause:
      No special error message incase bnx2x is up.

   Change:
      Incase ioctl EVST_IOCNVM_WRITE fails, show a different error
      message which instructs the user to check if bnx2x is up.

   Impact:
      Only if bnx2x is up along with lediag.

7. Problem:
      nvm cfg 141 (NIV port profiles enabled bitmap) always showed zeros,
      no matter what was the real value in the NVM.

   Cause:
      mask logics in the function tcl_nvm_get_bits in case of a 32bit size
      field was wrong, and caused read value from NVM to be zeroed.

   Change:
      If size to be read is 32 bit avoid using the mask (it is not needed).

8. Problem:
      nvm cfg 142 (NIV port profiles list) could not be read.

   Cause:
      Lack of support to array of strings in nvm cfg scripts.

   Change:
      Add support to that scenario.

9. Problem:
      Image located in extended dir could not be loaded and executed by the
      MCP (image with code).

   Cause:
      Unlike regular images, when ediag upgraded image in extended dir it did
      not look for the regular NVM header in which SRAM start address is
      included, and gave default value to that field.

   Change:
      Add to extended dir upgrade process verification if special header is
      included (according to magic string in its beginning), and if so - parse
      all parameters from that header.

10. Problem:
      NVM dir did not show SRAM start address for images in extended dir,
      and instead simply showed the value of the entry showen before.

   Cause:
      Wrong assumption that extended dir images do not include header with valid
      SRAM start address value.

   Change:
      Read SRAM start address from extended dir entry properties and disaply it.

11. Problem:
      CQ50653 License may become invalid, when a certain OEM
      feature is applied to mezz board.

   Cause:
      When such a feature is applied, the MAC address changes,
      causing license to become invalid.

   Change:
      Apply the license validation algorithm again with backup MAC
      address, if license is invalid with primary MAC address.

12. Problem:
      CQ51365 Ediag should omit nvm cfg VPD options if VPD image exist.

   Cause:
      Environment variable $::sys(IS_VPD_IMAGE) did not exist
      in eng. mode upon bring-up.

   Change:
      Enabled environment variable $::sys(IS_VPD_IMAGE) in eng. mode
      upon bring-up.

   Impact:
      Introduced in version 6.2.4.

13. Problem:
      Linux lediag does not compile on new kernels 2.6.34 and above.

   Cause:
      - init_MUTEX is un-declared in new kernels.
      - autoconf.h file location has changed in new kernels.
      - file_operations ioctl field is undeclared in new kernels.

   Change:
      - Replaced init_MUTEX with sema_init in new kernels.
      - Replaced autoconf.h location in new kernels.
      - Replcaed file_operations ioctl field with unlocked_ioctl field.

   Impact:
      New kernels 2.6.34 and above.

14. Problem:
      CQ51410 Running ediag with option -dev on 57712 with
      NIC PARTITION enabled, fails C1 test on the 3'rd device.

   Cause:
      Group C tests should be excluded from testing on 57712
      non-primary devices.

   Change
      Change -dev option to exclude tests on non-primary device, similar
      to running without the -dev option.

   Impact:
      57712 with NIC_PARTITION enabled.

15. Problem:
      CQ48350, CQ49176, CQ50911 and CQ51200. BCM57712 not linking up after wake
      on S4 and S5.

   Cause:
      PHY firmware does not have enough time to download in 8073 and 8727
      common init.

   Change:
      Poll until PHY firmware is downloaded, and then timeout at 300ms.

   Impact:
      8727 and 8073 PHYs.

16. Problem:
         Parity masking didn't mask correctly the UPB and XPB blocks and
         and parity masking also wasn't restored properly.

        Cause:
          Naming convention of XPB/UPB parity registers and error in
          restoreBlockParity function in GRC Dump.

        Change:
          Fixed GRC_Dump function to both restore the parity correct and
          address these registers.

        Impact:
          Introduced in 6.4.2.

Enhancements
------------
1. Request:
      Add nvm cfg options for MAC PARTITION image new per func fields:
      fcoe_node_wwn_mac_addr, fcoe_port_wwn_mac_addr.

    Change:
       Added fields 136 and 137 to nvm cfg (per func).

2. Request:
      Add nvm cfg support for new NPAR-SD NVM image.

    Change:
       Added fields 138-153 for that new image.
       Besides 138 field (global NIV image version) all other fields will be
       displayed/approached in ediag only if mf_mode is set to NIV (in nvm
       cfg #73).

3. Request:
      Change NVM default configuration of option 22 MBA enabled
      and option 105 DCBX enabled, for A1213G board.

   Change:
      As requested.

4. Request:
      Do not allow BC upgrade to version 6.4.0 and above on 57712 A0.

   Change:
      As requested.

5. Request:
      Add informative message incase "nvm crc" silently corrects the CRC
      of MKEY_INFO/UKEY_INFO blocks, if all zeros.

   Change:
      As requested.

6. Request:
          Added BMAC Register information to GRC_Dump. This feature is optional
          and controlled by the -withbmac option.

   Change:
      As requested.

7. Request:
     Added crash mode to GRC_dump. This feature (-crash) outputs all the
         possible information.

   Change:
     As requested.


Version 6.4.8 (November 11, 2010)
=================================
Fixes
-----
1. Problem:
       D7 TOE test fails on port 3,4 of 578xx device.

   Cause:
       License check on port 3, 4 was incorrect.

   Change:
       Fix license check of port 3,4 for 578xx device.

   Impact:
       578xx Only.

Enhancements
------------
1. Request:
      Exclude nictest C8 XGXS test on 578xx device.

    Change:
       As Requested.

2. Request:
      Force the VPD revision to be VPD_IMAGE_VERSION

   Change:
      As requested.

3. Request:
      Add NPAR-SD option to nvm cfg field "Force SF Mode" (field 73).

   Change:
      As requested.

Version 6.4.X (November XX, 2010)
=================================

Fixes
-----
1. Problem:
      Running "Nictest" on 578xx in manufacture mode did not perform
      tests A37 till A42 by default.

   Cause:
      Nictest procedure get_test_default_set() was not correct for 578xx.

   Change:
      Fixed get_test_default_set() for 578xx.

   Impact:
      Manufacture mode tests on 578xx only.

2. Problem:
          grcDump block parity masking doesn't work.

   Cause:
      Error in maskBlock() function in grcDump.

   Change:
      maskBlock() function was updated.

   Impact:
      Introduced in 6.4.2.


3. Problem:
      Nictest B32 BRB Full memory test fails with error message:
       "regsOffset(BRB1_REG_BIG_RAM) variable isn't array"

   Cause:
      Test B32 was not updated to use parse_rdf lists, which replaced arrays

   Change:
      Updated test B32 to use parse_rdf lists instead of arrays.

   Impact:
      Test B32 is not part of the default set of tests for "nictest".

4. Problem:
      Nictest D2/D3 Warpcore internal loopback fails

   Cause:
      Incorrect register set

   Change:
      Set the correct register to enable loopback

5. Problem:
      Nictest D3 unable to link up

   Cause:
      TX laser was disabled by default

   Change:
      Enable TX laser on initialization

6. Problem:
      Nictest tests A13, A20, A24 fails on 578xx device.

   Cause:
      Failure is CPU_MBIST_MEM_STATUS register.

   Change:
      CPU_MBIST_MEM_STATUS register was added to exception list
      for 578xx only.

   Impact:
     578xx Only.

7. Problem:
      Nictest test D7 fails when runs after test D2 on 578xx device.

   Cause:
      Idle_chk failure in NIG after "lmdev set_medium PHY_LB".

   Change:
      Fix in ELINK elink_set_xgxs_loopback(), do not attempt to access
      non-existing NIG_REG_XGXS0_CTRL_MD_DEVAD register in 578xx.

   Impact:
     578xx Only.

8. Problem:
      igu_dump_fifo utility, used to decode IGU idle_chk errors, parsed
      source field incorrectly.

   Cause:
      igu_dump_fifo utility parsed source field incorrectly.

   Change:
      Fixed igu_dump_fifo utility source field parsing:
        "0" for Chip write, "1" for Host write

   Impact:
      57712/578xx Only.

9. Problem:
      Nictest D3 External loopback test fails due to CRC errors

   Cause:
      Continuous link change interrupts cause XMAC re-initializations

   Change:
      Clear link interrupt correctly on link indication

   Impact:
      578xx Only

10. Problem:
       ediag causes system halt upon exit on 578xx device.

   Cause:
       Moving 578xx device to D3 state causes system halt.

   Change:
       Do not move device to D3 state upon exit (temporary work-around).

   Impact:
       578xx Only.

11. Problem:
       C10 XGXS test fails on 578xx device.

   Cause:
       prbstest TCL script did not support 578xx device.

   Change:
       Added support for 578xx device to prbstest TCL script.

   Impact:
       578xx Only.


Enhancements
------------
1. Request:
      Add to idle_chk a check for an overflow indication in
      PCIe DLP2TLP buffer.

    Change:
       As Requested.



Version 6.4.2 (November 4, 2010)
=================================

Fixes
-----
1. Problem:
      CQ50800 grcDump causes parity errors in 57712.

   Cause:
      Changes in read_regs_all and init tool caused GRC_Dump to read from
      unitialized registers.

   Change:
      GRC_Dump now masks all parity interrupts and clears parity at the end.

   Impact:
      57712 Only.

2. Problem:
      Segmentaion fault when running without any device.

   Cause:
      Attempt to read NVM configuration causes segmentation fault.

   Change:
      Do not attempt to get NVM configuration if there are no active devices.

   Impact:
      Introduced in 6.2.0

Version 6.4.1 (November 3, 2010)
=================================

Fixes
-----
1. Problem:
      GRC_Dump doesn't read MCP on 57800 / 57810 / 57840.

   Cause:
      GRC_Dump script skipped reading the MCP for these chips.

   Change:
      GRC_Dump script was fixed.

   Impact:
      Introduced in 6.4.0.

2. Problem:
      CQ37563 MSI-X is failing after hitting ctrl+c in the middle of
      A33/A34 MSIX/MSI tests.

   Cause:
      Hitting ctrl+c in the middle of MSIX test, does not restore
      the MSIX table and PCI configuration.

   Change:
      Added to ctrl_c handler restore of MSIX table and PCI configuration.

3. Problem:
      Running ediag/lediag in NO_PCI mode breaks with assert.

   Cause:
      Attempt to check is_vpd_image_exist() causes the assert.

   Change:
      Do not attempt to check is_vpd_image_exist() in NO_PCI mode.

   Imapct:
      Introduced in version 6.4.0

4. Problem:
      Exit ediag / lediag in NO_PCI mode breaks with assert.

   Cause:
      Attempt to perform "mcp run" during exit causes the assert.

   Change:
      Do not attempt to perform "mcp run" during exit in NO_PCI mode.

5. Problem:
      Image type MODULES_PN size was incorrect.

   Cause:
      The procedure tcl_al_read_fmodules() calculation of bytes_read
      was larger than actual size by sizeof(module_info_t).

   Change:
      Changed tcl_al_read_fmodules() bytes_read calculation accordingly.

6. Problem:
      External loopback test (extlb_test) fails on 10GBase-T designs
      when running at 10M against a slave port.

   Cause:
      The duplexity between the slave port and the port-under-test does
      not match, causing packets to be dropped.

   Change:
      The slave port driver gets reloaded with the matching speed and
      duplex when "-hlb <dev>" is specified.

7. Problem:
      CQ50780 ediag/lediag displays speed base as (unknown) when running
      with 57712 A1 board.

   Cause:
      Check of chip revision was incorrect.

   Change:
      Change check of chip revision to use CHIP_METAL macro.

   Impact:
      57712 A1 Only.




Enhancements
------------
1. Request:
      Add support for 57800.

    Change:
       As Requested.

2. Request:
      CQ49532: Add Ediag Support for 8706 PHY Firmware Upgrade.

   Change:
      ELINK now recognizes 8706 header, as well as enables 1G link alarm on
      8706.

   Imapct:
      BCM8706 based boards.

3. Request:
      Replace use of macros, which determine if device is 57712/57713/578xx,
      with macros, which determine if device is not 57710/57711/57711E.

   Change:
      As Requested.

4. Request:
      Add support for 57810, 57840, 57800 to idle_chk script.

   Change:
      As Requested.


Version 6.4.0 (October 27, 2010)
=================================

Fixes
-----
1. Problem:
      CQ50292 Running "ediag -sysop -autom -m -fnvm" after next DUT is
      swapped-in fails with ASSERTION.

   Cause:
      a. "pci init" attempt to zero device information array (dev_info_ar[])
         overwritten the environment variable $::current, since the array size
         calculation was incorrect.
      b. Update of $::sys(IS_VPD_IMAGE) within "device" command after next DUT
         swapped-in corrupted hidden devices configuration.
      c. Attempt to program MAC address of next DUT causes assert when
         refreshing devices.
      d. Test D3 fails after swapping to next DUT, since MCP is not responding.

   Change:
      a. Fixed the dev_info_ar[] size calculation.
      b. Moved update of $::sys(IS_VPD_IMAGE) to parse_and_process_args()
         instead of tcl_al_update_env().
      c. Fix in common_nvm_refresh_devices(), do not attempt to refresh
         hidden devices.
      d. Added reset to mcp after "pci init".

   Impact:
      57712 only


2. Problem:
      Undesirable assertion seen when unloading driver on some 57712
      based OEM NICs.

   Cause:
      The periodic statistics updates generate interrupts, sporadically
      confusing the driver unload sequence.

   Change:
      Since this is not needed for L2 traffic testing, disable the
      statistics update when loading driver for this type of testing
      (modified l2utils.tcl).


3. Problem:
      Check if 4-port board was incorrect.

   Cause:
      The procedure dg_is_4port() read bit[1] in register
      MISC_REG_PORT4MODE_EN_OVWR instead of bit [0] to get the
      overwrite control value.

   Change:
      Fixed dg_is_4port() according to 57712 MISC_REG_PORT4MODE_EN_OVWR spec.

   Impact:
      57712 only.

4. Problem:
      (CQ49515 & CQ50024) Occasionally losing link on force 10/100 connections
      on boards with BCM84823 PHY.

   Cause:
      Not waiting for GPHY to complete reset.

   Change:
      Add 50ms delay after 84823 PHY comes out of reset.

   Impact:
      BCM84823 based boards

5. Problem:
      External loopback test with option -link_speed 10/100/1000M
      with partner device at HLB mode fails.

   Cause:
      EMAC TX append CRC and RX strip CRC configuration was incorrect
      in set_host_lb utility.
      This utility checked is_bmac before link was established, thus
      configured EMAC incorrectly.

   Change:
      Removed call to tx_append_crc and rx_strip_crc in set_host_lb utility.

   Impact:
      Only in -slave mode with -link_speed 10/100/1000M.

Enhancements
------------
1.  Request:
      CQ49896 Add to "nvm cfg -dump" per function fields as well

   Change:
      Updated the logic of nvm cfg to handle "per function" fields.

2. Request:
      Add ::sys environment variable IS_MAC_PARTITION, which indicates
      if nvm cfg option 114 "mac partition global cfg" is enabled and
      option 73 "Force SF mode" is set to "Switch Indept".

    Change:
      The ::sys(IS_MAC_PARTITION) variable is updated upon ediag bring-up
      at parse_and_process_args() by checking these nvm configuration options.

    Impact:
      57712 only.

3. Request:
      Add support (include initial nvram) for 57810, 57840

    Change:
       As Requested.

Version 6.2.2 (October 6, 2010)
=================================

Fixes
-----

1. Problem:
      CQ50204 "nvm dump" VPD data has more characters than input VPD file.

   Cause:
      Attempt to dump RV TAG with checksum value, added invalid data at
      the end of VPD dump file.

   Change:
      Do not attempt to dump RV TAG data.

2. Problem:
      CQ 50220 NVRAM configuration options 50 (Port Swap), 67 (Mdio_voltage)
      do not change according to user input.

   Cause:
      Copy of part number from VPD (17 bytes) info to shared_hw_cfg
      (16 bytes) overwrites the first byte of config in shared_hw_cfg.

   Change:
      Copy part number from VPD info to shared_hw_cfg (16 bytes).

3. Problem:
      Total byte count in EXTENDED_DIR is incorrect after deleting image from
      EXTENDED_DIR.

   Cause:
      EXTENDED_DIR total byte count was reduced by the size of deleted image and
      the size of code_entry. Deduction of code_entry size was redundant.

   Change:
      Removed the deduction of code_entry from EXTENDED_DIR total byte count.


Enhancements
------------
1.  Request:
      Add option "-slave 0" for SYSOP, which dynamically sets the link partner
      device to the other device.

    Change:
      As requested.


Version 6.2.1 (September 27, 2010)
=================================

Fixes
------------

1. Problem:
      CQ49760 No link on 10Gbase-T PHY on some systems

   Cause:
      Not waiting until PHY has come out of reset.

   Change:
      Poll on reset bit. Timeout after 1 second.

   Impact:
      BCM84823 based boards

2. Problem:
      CQ49626 - TOE test aborted on 3rd board due to lack of memory,
      when runs with "-fnvm" option.
      (Reproduced in systems with low amount of free memory)

   Cause:
      The "-fnvm" option programs the NVM with input image using
      the function read_bin_file(), which allocates a Tcl_Obj
      with the size of the input image.
      This Tcl_Obj memory was not released.

   Change:
      Free tclObj in read_bin_file() using Tcl_DecrRefCount(tclobj).

3. Problem:
      Option "-fnvm" programs the NVM twice.

   Cause:
      The "-fnvm" programs the NVM on all primary devices.

   Change:
      In 57712 devices, program the NVM only is current bus number
      is different than previous bus number.

  Impact:
      57712 only.


Enhancements
------------
1.  Request:
       Add command line option "-ffeb" for programming FCOE_B image.
       Option "-ffebc" for programming FCOE_B & FEB_CFG image.
       Option "-ffebp" for programming FCOE_B & FEB_CPRG image.
       Option "-ffebcp" for programming FCOE_B, FEB_CFG, FEB_CPRG image.

    Change:
       As requested.

2.  Request:
       Change NVM configuration option 96 "VF PCI Device ID" default
       value to 0x166F.

    Change:
       As requested.

3.  Request:
      (CQ49904, CQ49905) Support external copper PHYs on 57712 for
      some OEM designs.

    Change:
       Tweaked GPIO control and PHY type lookup in shared memory to
       accommodate 57712 structure.

Version 6.2.0 (September 15, 2010)
=================================

Fixes
------------
1. Problem:
      CQ49649 - Dual Media: No 1Gb fiber when cable is connected.

   Cause:
      Link interrupt is generated from NIG attention common for both
      phys on dual media board. The NIG status was set for
      both PHYs while it should have been done for the copper
      attention only.

   Change:
      Set NIG attention according to the active PHY

   Impact:
      Dual media boards

2. Problem:
      NVM CRC mismatch in EXTENDED_DIR entry when deleting NIC_PRTION.

   Cause:
      The common_nvm_nvm_delete_extended_dir_entry() function did not zero
      the content of the last entry and also updated the EXTENDED_DIR entry
      with wrong image size (4 bytes less than expected).

   Change:
      Fixed common_nvm_nvm_delete_extended_dir_entry() accordingly.

   Impact:
      Only when EXTENDED_DIR includes more than one image.

3. Problem:
      NVM CRC mismatch in EXTENDED_DIR entry when upgrading image,
      incase there are gaps in NVM.

   Cause:
      The function common_nvm_find_room() which moves images in NVM
      to close gaps and finds a place in NVM to store the new image,
      did not take into account the EXTENDED_DIR and images in it correctly.

   Change:
      Fixed common_nvm_find_room() to check EXTENDED_DIR image offset
      in NVM and all its images offset in NVM before deciding on the
      place to store the new image.


Enhancements
------------
1. Request:
      "nvm cfg" command support for environment variable "::sys(IS_VPD_IMAGE)".
      When it is set, the "nvm cfg" command blocks the options which change VPD fields.
      (options 11-15, 77)

   Change:
      As requested.

2. Request:
      CQ49194 Support a new VPD image in NVM.

   Change:
      Added option "-vpd" to "nvm upgrade" command, which parses a VPD text files,
      creates a VPD image and stores it in NVM.

      Added option "-vpd" to "nvm dump" command, which dumps a VPD image into
      a VPD text file.


Version 6.0.26 (August 18, 2010)
=================================

Fixes
------------

1. Problem:
      CQ49316 Running nictest D3,D9 -hlb with wrong hlb device
      (equals the tested device) fails repeatedly even after fixing
      the hlb device number.

   Cause:
      The salve device list was static, thus even when fixed it included
      the wrong hlb device (as the tested device).

   Change:
      Removed "static" from slave_dev_list definition.


2. Problem:
      CQ49332 "nvm prg" progress status misspelled the word percent

   Cause:
      Printout message has a typo in the word percent.

   Change:
      Fixed typo in printout message of "nvm prg" progress status.

   Impact:
      Introduced 6.0.22.

3. Problem:
      Running "read_regs_all" utility used by "grcDump" on 57712 device,
      causes idle_chk errors:
      "Error (level 1): TSEM: interrupt 1 is active"
      "Error (level 1): IGU: some unauthorized commands arrived to IGU"

   Cause:
      a. Reading TSEM_REG_VFC_SW_RST causes idle_chk error in TSEM.
      b. Reading IGU_REG_ERROR_HANDLING_MEMORY causes idle_chk error in IGU.

   Change:
      Exclude TSEM_REG_VFC_SW_RST, IGU_REG_ERROR_HANDLING_MEMORY from reading
      via read_regs_all utility.
      Exclude also INT_STS, INT_MASK, PRTY_MASK registers from reading
      via read_regs_all utility.

   Impact:
      57712 device.


4. Problem:
      (CQ49296) Dual media: Copper link would not come up upon removal of fiber media
       when serdes priority and 1GB full is set.

    Cause:
       When Fiber link is set to 1G, its XAUI will not automaticity power down
       (like it does in 10G).
       This causes the BCM84823 to detect false link from the BCM8727, even when
       fiber is not connected. This ends up in not linking the copper side.

    Change:
       When link is configured to 1G, power down the BCM8727 XAUI side.
       When link comes up, power it up.

    Impact:
       Dual Media boards.

5. Problem:
      Dual Media PHY 84823 activity and front panel LED's not
      functioning correctly. Also Diagnostic Mode LED's not firing
      correctly.

   Cause:
      LED masks not set correctly.

   Change:
      Changed LED masks, and added LED mode for Diagnostics.

   Impact:
      Dual Media boards.

6.  Problem:
       CQ49471 Ediag hung when system time is between 23:44:0 to 0:0:0

    Cause:
        Function os_if_sleep_calibrate() is waiting for midnight boundry to pass
        for several minutes.
        The definition of MAX_TICK_VAL the number of ticks just before midnight
        was not percise.

    Change:
        Changed the MAX_TICK_VAL definition to 0x17FE7F which equals:
        3600 seconds per hour * 24 hour * 18.2 ticks per second.

    Impact:
       DOS only.

Enhancements
------------
1.  Request:
      (CQ46454 Cont.) Request Diags report Family Version of Firmware by default.

    Change:
       Change "device" command title string to "FamVer" instead of "FmwVer" incase
       VPD information includes a valid family version.

    Impact:
      Only for OEMs, requesting this feature.

2.  Request:
      Removed command "lmdev set_drop".
      Removed tests F12, F13, F14 External LB tests with different
      error packets drop.

    Change:
      As requested.

3.  Request:
      Removed command "lmdev set_cam".

    Change:
      As requested.


Version 6.0.25 (August 11, 2010)
=================================

Fixes
------------

1. Problem:
      "read_regs_all" utility used by grcDump fails to read the registers.

   Cause:
      "read_regs_all" should be changed to use regsName list instead of
      regsOffset array.

   Change:
      Changed "read_regs_all" to go through regsName list.

   Impact:
      Introduced in version 6.0.16.

2. Problem:
      CQ48989 Nictest test D9 "Second External PHY LB Test" fails
      on Dual-Media.

   Cause:
      a. lmdev set_medium SECOND_EXT_LB did not set correctly the
         second external loopback.
      b. When running D9 with -hlb option, need to set req_medium
         to SECOND_EXT_LB on the hlb device as well.
      c. Running several iterations of the test with -hlb option,
         sometimes fails due to first packets drop.

   Change:
      a. Fixed implementation of "lmdev set_medium SECOND_EXT_LB".
      b. Fixed init procedure, when running D9 with -hlb option,
         set req_medium to SECOND_EXT_LB on the hlb device as well.
      c. In -hlb mode, check that host loopback device link is also
         up before transmitting packets.

   Impact:
      Dual Media boards only.

3. Problem:
      CQ49135 Dual media: Copper media link LED is on at 10 mb speed

   Cause:
      LED1 Mask incorrectly set

   Change:
      Updated LED1 Mask accordingly

   Impact:
      Dual Media boards only.

4. Problem:
      "pstat" utility reads incorrectly ur_err_status, corr_err_status

   Cause:
      ur_err_status, corr_err_status addresses were incorrect for 57712 device.

   Change:
      Updated ur_err_status, corr_err_status addresses for 57712 device.

   Impact:
      57712 only.

5. Problem:
      84823 PHY not showing correct Link LED's. Introduced in 6.0.22.

   Cause:
      Incorrectly setting LED Masks

   Change:
      Eliminated offending branch in code

   Impact:
      84823 boards

6. Problem:
      CQ49198 uediag - nictest summary includes misspelled word

   Cause:
      Printout of nictest summary includes a typo.

   Change:
      Fixed typo in printout of nictest summary.

7. Problem:
      CQ49134 nictest D7 TOE test fails when NIC_PARTITION enabled

   Cause:
      Missing configuration to NIG LLH required in this mode.

   Change:
      Added to um_tcp_ofld_neigh() call to lm_insert_nig_entry()
      with the source MAC address.

   Impact:
      Only when NIC partition is enabled.

8. Problem:
      Intermitted link failures and unexpected behavior using
      boards with external PHYs.

   Cause:
      PHY lock indication was missing on second port, meaning
      there was no locking between the ports.

   Change:
      Set PHY lock indication of both ports.

   Impact:
      57710/57711 on boards with external PHY.


9. Problem:
      Dual Media: Running nictest D3 "External Loopback Test"
      for several iterations sometimes fail due to copper PHY
      link down.

   Cause:
      Link indication from both Copper and Fiber.

   Change:
      Ignore link indication from Fiber in case Copper is selected.

   Impact:
      Dual-media boards

10.Problem:
      "read_regs_all" utility used by grcDump, causes idle_chk. Error (level 1):
      "NIG: parity interrupt is active, Value is 0x90"

   Cause:
      Reading registers NIG_REG_INGRESS_MNG0_FIFO, NIG_REG_INGRESS_MNG1_FIFO
      causes idle_chk error.

   Change:
      Exclude NIG_REG_INGRESS_MNG0_FIFO, NIG_REG_INGRESS_MNG1_FIFO from
      read_regs_all.

   Impact:
      57711 device.


Enhancements
------------
1.  Request:
      (CQ46454) Request Diags report Family Version of Firmware by default.

    Change:
       Added read of VPD from PCI and display of Family Version if valid,
       (instead of BC version).

    Impact:
      Only for OEMs, requesting this feature.


Version 6.0.24 (July 28, 2010)
=================================

Fixes
------------

1. Problem:
      CQ 48855 Nictest test A33 (Interrupt test w/ MSIX funct.) fails
      on device 3 through device 7 (when NIC partition enabled).

   Cause:
      Utilities int_ack_e2() and msix_mem_init_e2() used func%2
      in calculations instead of func/2.

   Change:
      Fixed utilities int_ack_e2() and msix_mem_init_e2() calculations
      to use func/2.
      Also fixed mask and enable MSI writes.

   Impact:
      Only on devices 3 through 7, when NIC partition is enabled.

2. Problem:
      (CQ 48855) Running A34 MSI test on device 3 the second time
      fails with DbgBreak (USTORM assert), when NIC partitioning
      is enabled.

   Cause:
      Test A34 call to "mcp reset" erases NIC partitioning configuration.

   Change:
      Replaced diag code for "mcp reset" with call to lm_reset_mcp(),
      which handles correctly restore of NIC partition configuration
      upon MCP reset.

   Impact:
      Only when NIC partition is enabled.

3. Problem:
      Link LED not functioning on 84823 on Dual Media board.

   Cause:
      Magjack did not match schematic.

   Change:
      Remapped LED1 and LED2 mask.

   Impact:
      Dual Media boards only.

4. Problem:
      CQ48980 command "nvm dir" causes DEBUG BREAK if NVM image
      includes L2T, L2C, L2X, L2U or MODULES_PN images.

   Cause:
      Getting L2T, L2C, L2X, L2U or MODULES_PN called
      common_nvm_read_NVM_or_image() with byte count MAX_VER_STR_SIZE (50),
      thus lm_nvram_read() failed the buffer size check.

   Change:
      When getting L2T, L2C, L2X, L2U or MODULES_PN call
      common_nvm_read_NVM_or_image() with byte count 4.

   Impact:
      Introduced in version 6.0.23 when MAX_VER_STR_SIZE
      definition was changed.

5. Problem:
      CQ49009 "nvm crc" reports mismatch on MKEY_INFO_P1, UKEY_INFO_P1

   Cause:
      MKEY_INFO_P1 and UKEY_INFO_P1 are all zero, thus CRC calculation
      does not match the CRC in NVM (which is also zero).

   Change:
      a. Incase MKEY_INFO_P1, UKEY_INFO_P1 is all zero add fix to CRC.
      b. For 57712, no need to check CRC on MKEY_INFO_P1, UKEY_INFO_P1
         since there is one license key per board.

6. Problem:
      CQ49052 CRC mismatch observed with "nvm crc" command used after
      upgrade of MBA from fw_clp 6.0.27 to legacy 6.0.27.

   Cause:
      Last 1K block of MBA legacy 6.0.27 image was not written to NVM.
      The image size in this case was an exact multiple of 1K.

   Change:
      Fixed the loop which writes to NVM 1K blocks and shows progress
      status, to include the last block.

   Impact:
      Introduced in version 6.0.22.

7. Problem:
      Nictest test C1 (DMAE test) fails on device 3 through device 7
      (when NIC partition enabled) in engineering mode.

   Cause:
      Group C tests should not be tested on non-primary devices,
      should be tested only on function 0 of each engine.

   Change:
      Fixed the utility dg_is_primary_dev().
      Exclude group C tests from testing on 57712 non-primary devices.

   Impact:
      57712 only.

Enhancements
------------
1.  Request:
      (CQ49069) Dual media: Add second external loopback test to SYSOP mode

    Change:
       For Sysop mode, added test D6 "Second External LB Test".
       This test will run automatically incase NVM configuration for
       "Second XGXS external PHY type" (option 98) is different than
       Direct (0) or Not Connected (255).

Version 6.0.23 (July 21, 2010)
=================================

Fixes
------------

1. Problem:
      Message "Forced upgrading NIC_PRTION" is shown during nictest
      test C11 "NVM Access test".

   Cause:
      NVM test restores NVM data at the end of test including the
      NIC_PRTION image.

   Change:
      Added "silent" argument to nvm utility which programs image in the
      extended dir. The "silent" argument is set to true when called by
      the function which programs the NIC partition, to avoid the
      "Forced upgrading NIC_PRTION" during C11 test

   Impact:
     Only when NIC_PRTION image exist in NVM.

2. Problem:
      Diag command line option "-fnvm" programs the NVM twice.

   Cause:
      The "-fnvm" option goes through devices and if primary device,
      programs the NVM.
      The check if primary device was performed prior to executing the
      "device" command.

   Change:
      Moved the check if primary device, after execute_device().

3. Problem:
      CQ48893 eDiag fail C08 test when both 57712E & 57711 (two-ports nics)
      are installed in the same system.

   Cause:
      The utility "is_one_port_board" faulty found the 57711 board as
      single port board.

   Change:
      Fixed the "is_one_port_board" to look at both previous and next device
      from the current device and if anyone of them has the same bus number,
      this is not a single board device.

4. Problem:
      CQ48885 eDiag fails D1 test on a dual media design.

   Cause:
      The PHY initialization did not account for the loopback cases in
      these designs and eDiag hits an assertion check.

   Change:
      Added code to accept loopback as the request medium.


Enhancements
------------
1.  Request:
      (CQ#48738)
      Add -stride cmd line switch for SysOp.

    Change:
      As requested

Version 6.0.22 (July 14, 2010)
=================================

Fixes
------------

1. Problem:
      Changing per function values in nic partitioning nvm image
      (fields 118-123) did not work correctly (values were not changed,
      fields included wrong values etc.).

   Cause:
      Function to get pci function number was wrong in 57712 devices.

   Change:
      Fix logics of the function getting pci device function of current device.

   Impact:
      57712 devices only.

2. Problem:
      nvm operations did not work on Linux machine on non-pci mode.

   Cause:
      Only lately serial support was added to Linux ediag, but that feature
      was not added.

   Change:
      Small fixes in order to support nvm opertaions on Linux flavour.

   Impact:
      Linux ediag only.

3. Problem:
      UEFI ediag exception upon exit after running "nvm upgrade".

   Cause:
      Use of "malloc" and "memset" in common_nvm_prog_image_by_idx().

   Change:
      Call dg_os_alloc_virt(), dg_os_memset() via common functions.

   Impact:
      Introduced in 6.0.17.

4. Problem:
      NVM operations fail to work in DOS NO_PCI mode.

   Cause:
      a. uart_info.uart_handles[] index was changed from io_port-1 to io_port,
         but not in all places.
      b. use of current device information or execute "device" command doesn't
         work in NO_PCI mode.

   Change:
     a. Fix in dg_duart_nvm_read(), dg_duart_nvm_write() to use index io_port
        in reference to uart_info.uart_handles[].
     b. In case of NO_PCI mode, read required information via UART.

   Impact:
      Introduced in 6.0.16.

5. Problem:
      CQ48756 lediag "nictest" fails on device 2 test D1 "BMAC Loopback Test".

   Cause:
      a. D1 fails on "driver load" after group B tests.
      b. D1 fails on "driver load" after test C8 "XGXS Register access test".

   Change:
     a. Added "mcp halt" at the begining of group B tests. Also added
        "reset_chip" and "mcp reset" at the end of group B tests.
     b. Recently added utility "is_one_port_board" was incorrect on 57712.

 Impact:
      57712 "forced SF" mode only.

6. Problem:
      CQ 48695 UEFI Nictest starts too late on second board when 57711 board
      and 57712 board are installed in the same system.

   Cause:
      The utility un_parse_rdf, which is required when starting to test
      a different board type, takes more than 1 minute to complete in UEFI OS.
      This utility unsets the registers names, offsets, etc. lists.

   Change:
      Define "ckfree", "free" as dg_os_free_virt() instead of Tcl_Free().
      dg_os_free_virt() in UEFI is declared as efi_free(), which is much faster.

   Impact:
      UEFI OS only.


Enhancements
------------
1.  Request:
      Add progress status in precentage to "nvm upgrade","nvm prg".

    Change:
      Changed common_nvm_program_nvm() to write blocks of 1K to NVM.
      Progress status is shown (in percentage) between these blocks.

2.  Request:
      Add new LED mode ExtPhy1 to be used with dual-media board types

    Change:
      As requested

Version 6.0.21 (July 07, 2010)
=================================

Fixes
------------
1. Problem:
      CQ 48626 Nictest test C2 "CAM R/W functionality test" duration
      is too long on 57712.

   Cause:
      Test C2 on 57712 includes VFC CAM test performed by marching ones/zeros
      checks, which are implemented in TCL and thus take several minutes
      to complete.

   Change:
      VFC CAM test on 57712 was removed from test C2.
      New C13 test "Block VFC CAM test" was implemented for VFC CAM testing.
      Test C13 will not be performed by default.
      In order to run C13 test, user should use the option "-T C13".

   Impact:
      57712 Only.

2. Problem:
      Per port nvm configuration of nic partitioning feature (nvm cfg fields
      115-117) were shared between both 57712 ports.

   Cause:
      Diag approached same nvm offsets in both ports (because both port numbers
      are zero, and path number was not checked).

   Change:
      Add check according to path num. Due to that new check two ports approach
      different NVM offsets and values are not shared.

   Impact:
      57712 Only.

3. Problem:
      Link lost every other time when driver is brought up.

   Cause:
      When the PHY swap parameter ('nvm cfg' option 124) is set, the PHY's
      swap everytime the link is brought up.

   Change:
      Instead of storing the PHY order, we calculate it fresh everytime.

   Impact:
      Dual-media boards.

4. Problem:
      CQ 48669 nictest C8, C10 tests (XGXS tests) fail on single-port board
      incase another board is installed in system.

   Cause:
      Single-port board requires special initialization for XGXS tests.
      Check if single-port board was done by checking if environment variable
      $::current(TOTAL_DEV) is 1.
      This variable is not 1 incase another board is installed in system,
      thus special settings for single-port board was not performed.

   Change:
      Replace check of $::current(TOTAL_DEV) with utility is_one_port_board,
      which checks if consecutive device has a different $::current(BUS).

   Impact:
      Single-port boards.

5. Problem:
      PHY firmware version may be appear corrupted

   Cause:
      Incorrect line ending setting describing PHY version

   Change:
      Fix line ending

   Impact:
      Dual-media boards.

Enhancements
------------
1.  Request:
      Change idle_chk macro 7 to verify expected Activity Counter (AC) value
      according to connection type (0-ETH, 1-TOE, 3-iSCSI, 4-FCoE).

    Change:
      As requested.

2. Request:
       add "stats disable" and "stats enable" commands towards the operational
       driver.

    Change:
       Added field in shmem2 region named "edebug_driver_if". If diag writes
       to there a specific command, operational driver stopps (or restarts)
       to collect statistics.

3. Request:
       Change grcDump usage of "driver disable_stat" to "stats disable" command.
       "stats disable" command uses new shmem2 interface between diag and the
       driver.

    Change:
       As requested.


Version 6.0.20 (Jun 30, 2010)
=================================

Fixes
------------
1. Problem:
      Command line options "-m", "-fmac" fail to program
      MAC addresses of devices 3,4 incase of 4-port mode.

    Cause:
      MAC addresses of devices 3,4 were not programed.

    Fix:
      In case of 4-port mode, program also MAC addresses
      of device 3,4.

    Impact:
      T1204 board only.

2. Problem:
      mcdiag did not receive CFC delete completion from ediag.

    Cause:
      ediag signaling mechanism to registered applications (such as mcdiag)
      was not implemented correctly on default status block interrupts
      (correct logics was only for non default status block).

    Fix:
      Fix signaling to registered applications in default status block
      interrupt handler.

3. Problem:
      wrong nvm configuration of board A1213:
      1. Product name (cfg #11) should be QLogic 10GbE Dual Port SFP+ Adapter.
      2. Force SF mode (cfg #73) should be Forced SF.

    Cause:
      wrong nvm cfg values in xls file.

    Fix:
      As requested.

4. Problem:
      Incorrect LED behavior on dual-media platform

   Cause:
      The LED settings are used to control GPIO in favor of
      over-current detection

   Fix:
      On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect
      LED behavior rather than unnecessary over-current indication

   Impact:
      BCM8727 based boards

5. Problem:
      Test D9 "Second External PHY Loopback Test" is always
      performed if "nvm cfg 98" is different than "0"/"Not Connected",
      even if running another specific test.

   Cause:
      The D9 test is enabled if "nvm cfg 98" is different than
      "0"/"Not Connected".

   Fix:
      Exclude test D9 from testing if "nvm cfg 98" is either "0"
      or "Not Connected".

   Impact:
      Introduced in 6.0.19.

6. Problem:
      CQ 48553 Failure when running ediag -slave option.

   Cause:
      Group A tests reset the chip, while slave device driver
      is up (in host loopback mode).

   Fix:
      Set slave devices into host loopback at the init procedure
      of test D3 (instead of the begining of "nictest").
      Fix required change in L2 test "-hlb" option, now receives
      list of slave devices.

7. Problem:
      CQ 48557 Nictest test B30 "Block VFC Memory Test" duration
      is too long.

   Cause:
      Test B30 uses special marching zeros and marching ones tests,
      which are implemented in TCL and thus takes several minutes
      to complete.
      The access to this memory is not regular GRC access, thus can
      not use the C commands "mtest <march_1s/march_0s>".

   Change:
      Test B30 will not be performed by default.
      In order to run this test, use the option "-T B30".

   Impact:
      57712 Only.


Enhancements
------------
1.  Request:
      Enable "license" command to work in background thread.

    Change:
      Removed use of "device", interpreter and environment variables
      within "license" command.

2. Request:
      Add function that checks chip number in common nvm layer.

    Change:
      Added function named common_nvm_get_chip_num in common_nvm layer,
      which is implemented differently on diag and on edebug.

3. Request:
      nvm cfg field "fan failure enforcement" (option #83) for board A1213
      should be changed to "disabled".

   Change:
      As requested.

4. Request:
      Fit Dual media selection to the new scheme

   Change:
      As requested

5. Request:
      (CQ48296)
      Enable determining the GPIO to control external PHY reset
      (through nvm cfg 129)

   Change:
      As requested

   Impact:
      BCM8727 based boards

6. Request:
      Support External Loopback Test on E1, BCM84833 PHY combination

   Change:
      As requested

   Impact:
      BCM84833 based boards

7. Request:
      Enable limiting link speed to 1000Mbps depending on
      nvm cfg 127 (force KR enabler). In case it is set to GPIO,
      speed will be limited if GPIO value is low.

   Change:  As requested.
            Requires BC6.0.27 and higher.

Version 6.0.19 (Jun 21, 2010)
=================================

Fixes
------------
 1. Problem:
       Link down when using specific DACs (Direct Attached Cables)

    Cause:
       Some DAC's EEPROM do not respond at 400Khz speed

    Fix:
       Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz

    Impact:
       BCM8727 based boards

Enhancements
------------
 1. Request:
       Add "nictest" test D9 "Second External PHY Loopback Test".
       Test is not performed by default.
       Test is perfromed if NVM configuration option 98 "Second XGXS
       external PHY type" is different than 0 and "Not Connected".

    Change:
       As requested.
       Added support to "lmdev set_medium SECOND_EXT_PHY"

 2. Request:
       Add nvm option to set MF DID

    Change:
       As requested - nvm cfg 128


Version 6.0.18 (Jun 16, 2010)
=================================
Fixes
------------
 1. Problem:
       Print-outs during NVM image upgrading include corrupted
       version numbers.

    Cause:
       Print-outs were changed from "print" to INFORM "DbgMessage"
       without the correct "DbgMessageX" as the number of
       variables to print.

    Fix:
       Changed printouts to the correct "DbgMessageX"

    Impact:
       Introduced in version 6.0.17

 2. Problem:
       CQ48219 Nictest test A1 fails on 57711 when runs after 57712.

    Cause:
       Parse evrst15.rdf after parsing everst2.rdf file is
       incorrect.
       The utility un_parse_rdf is missing unset of regsOffset list.

    Fix:
       Add unset regsOffset list to the utility un_parse_rdf.

    Impact:
       Introduced in version 6.0.16

 3. Problem:
       In some machines all register opertaions failed.

    Cause:
       ediag mapped bar address according to the address detailed in pci
       configuration space. But, in some machines this address is already
       mapped to another place. Therefore, bar address to map should be
       taken from /sys/bus/pci/ files.

    Fix:
       Get bar address to map from /sys/bus/pci/ files.

    Impact:
       Introduced in version 6.0.17

 4. Problem:
       vnic_cfg is not working with bootcode 6.0.21 or later on 57712

    Cause:
       Bootcode internal mapping was changed, moving the mf_cfg structure to
       higher addresses and the script assumed those addresses were invalid

    Fix:
       Fix the MCP scratchpad limits to accomodate 57712 increased scratchpad

    Impact:
       57712 devices only

 5. Problem:
       CQ48263 nictest test C11 increases NIC_PRTION image byte_cnt by 4.

    Cause:
       The C11 test restores the original NVM data at the end of test.
       The re-programming of NIC_PRTION image added 4 bytes of CRC,
       additional to the 4 bytes crc32 in the nvm_nic_part_cfg_t struct.

    Fix:
       Removed the redundant variable "crc32" from nvm_nic_part_cfg_t,
       since CRC is added while re-programming the NIC_PRTION image
       using the PRG_NVM_APPEND_CRC flag.

 6. Problem:
       (CQ41230)
       driver load fails on SuSe11-32 bit, if version is not compiled locally
       and taken from pre-compiled release tar file.

    Cause:
       Allocation of um resources fails.
       The reason for the failue is that struct um_resource_desc_t includes
       a member of type dma_addr_t. This member size is different in SuSe11-32
       bit kernel, and causes different offsets in the structs between the
       architectures.

    Fix:
       Changed type of member in um_resource_desc_t struct to be u64_t, and
       performed relevant casting in the ediag_compat module which is compiled
       locally even when taking a version from release tar file.

 7. Problem:
       NVM operations take several minutes when MCP does not exist.

    Cause:
       Check of FPGA/EMULATION in dg_reset_mcp() was incorrect, causing long
       timeout while waiting for MCP to come up in real chip.

    Fix:
       Fixed check of FPGA/EMULATION in dg_reset_mcp().
       There is a different timeout for real chip versus FPAG/EMULATION.

  8. Problem:
       CQ48348 - failed to upgrade ext_phy from a command line option.

    Cause:
       The -fextphy option uses "ext_phy_fw upgrade -F" which forces
       "driver load". Nictest group A tests use "reset_chip".
       Since driver is still loaded, reset_chip causes debug break.

    Fix:
       Add "driver unload" at the end of ext PHY upgrade incase
       option -F was used in.

    Impact:
       57711 devices only.

  9. Problem:
       Idle_chk on 57712 sometimes fail with errors
       "AEU: P0 AFTER_INVERT_3 is not 0, Value is 0x2420000"
       "AEU: MCP AFTER_INVERT_3 is not 0, Value is 0x2420000"


    Cause:
       SW timers_attn 2 is raised.
       SW timers is expected to raise every 1 second to run
       LLDP state machine.

    Fix:
       Change idle_chk, mask SW timers attn (bit 22) of
       MISC_REG_AEU_AFTER_INVERT_3_FUNC_0/1/MCP registers.


Enhancements
------------
 1. Request:
       (CQ 48257)
       Expansion ROM size field in the nvm (cfg #28) should not be configured
       to any default value in nvm cfg command (only if specifically requested
       by the user).

    Change:
       As requested.

 2. Request:
       Support one license key per 57712 board, instead of 4 license keys
       (for two ports per two paths).

    Change:
       Added support to one license per 57712 board according to first port
       (in first path) MAC address.

    Impact:
       57712 only.

Version 6.0.17 (Jun 09, 2010)
=================================
Fixes
------------
 1. Problem:
       CQ47700 - Can't get Link when forcing speed on 10/100M

    Cause:
       When link is not set to autoneg, MDIX wasn't enabled so link
       couldn't be established on direct cables

    Fix:
       Enable MDIX when autoneg is disabled

    Impact:
       BCM84823 based board

 2. Problem:
       DOS ediag A35 IGU registers test causes system halt
       when ran after "driver unload" on specific server.

    Cause:
       Interrupt handler is called before IGU block is
       configured.

    Fix:
        Check pdev->lmdev.vars.enable_intr before calling
        lm_get_interrupt_status() to avoid handling interrupts
        before IGU block is configured.

    Impact:
       DOS ediag only.

 3. Problem:
       DOS ediag D7 TOE test fails cause of idle_chk failure
       "IGU un-authorized commands arrived to IGU", when ran
       after "driver unload" on specific server.

    Cause:
       Interrupt handler is called before IGU block is
       configured.

    Fix:
        Check pdev->lmdev.vars.enable_intr before calling
        lm_get_interrupt_status() to avoid handling interrupts
        before IGU block is configured.

    Impact:
       DOS ediag only.

 4. Problem:
       UEFI eDiag failed to allow user to change "nvm cfg" values.

    Cause:
       UEFI read() gets only first character and not the whole string
       inserted by user via STDIN.

    Fix:
        ReadFromFdAndUart() should call tcl_io_read() instead of read().
        Added to tcl_io_read() the flag g_no_ctrl_keys, not to
        allow control keys (such as F3, Arrow up) during "nvm cfg"
        cause of CQ46302.

    Impact:
        Introduced in UEFI ediag ver 6.0.16 during fix of CQ46302.

 5. Problem:
       CQ48188 Nic Partition is corrupted after running C11 NVM test.

    Cause:
       NVM test restores at the end of test the NVM data from
       offset (different than 0) using "nvm prg".
       The implementation of "nvm prg" incase offset != 0 calls
       handle_mac_partition_data() with un-initialized values of
       macp_image, macp_image_found.
       Thus NIC_PARTITION image was over-written with un-initialized data.

    Fix:
        Call fill_mac_partition_info() before calling
        handle_mac_partition_data(), so that macp_image will include
        the valid values of existing NIC_PARTITION values.


Enhancements
------------
 1. Request:
       Added device information upon "device <devNum>".

    Change:
       Added device information to device_select_cmd().
       Added option "-no_display" to device command.
       Changed scripts which use "device" command to use "device -no_display"

 2. Request:
       Restructure nvm code in order to be reused by other applications
       as well.

    Change:
       tcl_nvm and dg_nvm were restructured to common_nvm_tcl and
       common_nvm_manager modules.

 3. Request:
       Make the "igu_dump_fifo" utility available to users incase
       it is required after idle_chk.

    Change:
       Moved the location of "igu_dump_fifo" utility  from
       scripts\e2scripts_dev\e2utils.tcl to
       common\scripts\IguDump.tcl

    Impact:
       57712 only.

4. Request:
       Restructure Linux register operations to be performed using memory map
       instead of ioctls.

    Change:
       As requested.

    Impact:
       Linux ediag only.

Version 6.0.16 (Jun 02, 2010)
=================================
Fixes
------------
1. Problem:
      CQ47154 D7 TOE test fails using DOS 6.22 due to lack of memory.

   Cause:
      Use of hash arrays in parse_rdf and C4 timers, C6 dbg_pxp tests
      consume a large amount of memory, which is not release by
      "array unset" (TCL interpreter bug).

   Fix:
      Replace use of hash arrays in parse_rdf with lists, which
      consume less memory.

   Impact:
      Introduced in 6.0.10 since test D7 memory consumption increased
      by use of "catch" commands for FLR support.

2. Problem:
      (CQ 47867)
      Link establishment failure on A1213 board.

   Cause:
      nvm configuration was wrong and caused link problems.

   Fix:
      Changed following nvm default configurations for A1213:
      - Port swap (option #50) changed to "disable".
      - XGXS external PHY address (option #42) changed to "10" on port 1
        and "11" on port 2.
      - First external PHY MDC/MDIO mode (option #102) changed to "EMAC0".

   Impact:
      A1213 boards only.

3. Problem:
      CQ46302 Abnormal termination from "nvm cfg" prompt upon
      use of F3 key, for history information.

   Cause:
      Bug in "history" TCL command which does not free an object.
      Thus "nvm cfg" call of "gets stdin" fails with error message
      "Tcl_SetObjLength called with shared objet".

   Fix:
      Do not support control keys such as F3, Arrow up, during
      "nvm cfg" prompt.


Enhancements
------------
 1. Request:
       Added 4 idle checks for completion errors in PGLUE and PXP

    Change:
       As requested

 2. Request:
       Changed idle_chk of activity counter (AC) equal to 1, incase of ISCSI
       connections from warning to error.

    Change:
       As requested

 3. Request:
       Changed FCOE licenses from binary (0 or unlimited) to a 32 bit value

    Change:
       As requested

 4. Request:
       Add serial port support for Linux, in order to be able to perform
       in no_pci mode registers operations and run register related TCL
       scripts, such as idle_chk and grcDump.

    Change:
       As requested.

       As in other OSs, first run set_duart script to open a specific com
       port with appropraite settings/baud rate.

 5. Request:
       Add to mac partitioning flow control member (of port configuration)
       option named "auto" (besides the already exising values: none, tx_only,
       rx_only and both).

       That options is relevant for nvm cfg option #115.

    Change:
       As requested.

 6. Request:
       Support changes of FW 6.0.25.

    Change:
       Removed FWD connection establishment from Diag interrupt routine, as
       it is now handled by LM layer.

Version 6.0.15 (May 18, 2010)
=================================
Fixes
------------
1. Problem:
      Driver load on 57712 devices takes ~20 seconds on IA64 machines.

   Cause:
      init_pxp2_common performs ~6000 indirect register write operations,
      while there isn't any reason not to use direct (and much faster) ones.

   Fix:
      Change reg write operations to be direct.

   Impact:
      57712 devices only.

2. Problem:
      BAR size nvm cfg default value for board A1160 was wrong.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      Changed BAR size default value of board A1160 to 32M:8M

Enhancements
------------
1.  Request:
      Add "nvm cfg" and "nvm chk" support for A1213G

    Change:
      As requested

2. Request:
       Enable PFC statistics in MAC

    Change:
       As requested.

Version 6.0.14 (May 12, 2010)
=================================
Fixes
------------
1. Problem:
      External phy firmware version is not available after driver is loaded

   Cause:
      External phy firmware is not re-loaded during driver load, only once
      during bootcode initialization stage

   Fix:
      Initialize external phys during once during common init stage

   Impact:
      57711+8073/8726/8727

2. Problem:
      MII mode nvm cfg option (#54) was disabled for all devices.
      It should be valid for non 57712 devices.

   Cause:
      Wrong nvm cfg configuration.

   Fix:
      Fix nvm cfg configuration.

3. Problem:
      Segmentation fault upon "driver flr".

   Cause:
      The "driver flr" call to "mcp access 0x80000000" fails
      with attempt to access second argument (objv[2]) when it is NULL.

   Change:
      Fixed "mcp access" implementation not to access second argument
      (objv[2]) when number of arguments is less than 3 (objc < 3).

4. Problem:
      NVM crc mismatch in MKEY_INFO_P1, UKEY_INFO_P1 on single-port boards.

   Cause:
      nvm crc of license keys of port 1 should not be checked on
      single-port boards.

   Change:
     Incase of total functions < 2, do not check MKEY_INFO_P1, UKEY_INFO_P1.

   Impact:
      Introduced in ediag 6.0.13.

5. Problem:
      (CQ 47609)Link Level Pause causes link to pause after PFC has been negotiated.

   Cause:
      Wrong MAC registers configuration

   Change:
      Fix configuration

   Impact:
      57712 only

6. Problem:
      Link change after PMF migration may halt the system

   Cause:
      PHY attributes are provided to the initial PMF only

   Fix:
      Load PHY attributes for every new function regardless of being PMF or not/

   Impact:
      Multi-function mode

7. Problem:
      BAR size nvm cfg default values for boards A1022 and A1060 were wrong.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      - Changed BAR size default value of board A1022 to 128M:8M
      - Changed BAR size default value of board A1060 to 32M:8M

8. Problem:
      CQ47445: The duplex mismatch does not work as expected

   Cause:
      Duplex was set correctly in the phy, but wasn't passed to the
      driver. In addition, when setting 10/100 force speed, it
      actually advertised 10/100 with autoneg.

    Fix:
      Return the correct duplex result, and when speed is set to 10/100,
      set the speed actually for force 10/100

    Impact:
        BCM84823 based boards

9. Problem:
      CQ47383: It takes long time to re-establish link in when
      working against some switches in force 1G mode
      CQ47485: Lots of rx errors when running netperf test

   Cause:
      PHY is unable to establish good link in this mode

   Fix:
      Enable CL37 BCM autoneg instead of working in force 1G

   Impact:
      BCM8073 based boards

Enhancements
------------
1.  Request:
      Remove redundant LCPLL setting which is done already in the bootcode

    Change:
      As requested

2.  Request:
      Add SEM_FAST registers to Everest RDF file.

    Change:
      Everest RDF file was changed, added SEM_FAST registers.
      idle_chk TCL script was changed due to name changes in everest RDF.

3.  Request:
      Add option to skip qstat operation in grcDump.

    Change:
      add -noqstat flag to grc_dump script.

4.  Request:
      Add idle_chk to all devices.

    Change:
      Added "idle_chk_all" TCL script to run idle_chk
      on all devices.

5.  Request:
      Remove nvm cfg option 127 (force KR enabler), as it's not needed due to
      fixes to problems #8 and #9 described above.

    Change:
      Remove nvm cfg 127 from relevant files.

Version 6.0.13 (May 05, 2010)
=================================
Fixes
------------
1. Problem:
      performing nictest while diag driver is loaded in any of the devices
      causes machine to halt.

   Cause:
      mcp reset is performed while driver is loaded - and it is forbidden.

   Fix:
      Before performing nictest actions check that driver is not loaded on all
      devices. If any of them is loaded - print an error to user to unload it
      first.

2. Problem:
      (CQ47221) "nvm crc" does not checks only the license keys of port 0.

   Cause:
       "nvm crc" block table includes only the license keys of port0.

   Fix:
      Added to "nvm crc" check of license keys of port 1 as well.
      "nvm crc" CRC results of license keys is silent, only shown if
      there is a CRC error.

3. Problem:
      (CQ47398) C2 nictest fails on 57712 devices.

   Cause:
       Script tried to reach unassigned variable (variable was assigned only
       in non 57712 devices).

   Fix:
      Assign value to variable in all cases.

   Impact:
      Issue introduced in ediag version 6_0_12.

4. Problem:
      Loading driver on one port may cause link toggling on the other port

   Cause:
      PLL was initialized for both ports instead of per chip

   Fix:
      Initialize PLL once during common init

   Impact:
      57712

5. Problem:
   (CQ 47122)
      lediag fails to compile on RH4.8

   Cause:
      Some PCI kernel functions API changed in Linux kernel version 2.6.9.
      Current lediag code is suitable only to newer kernel versions.

   Fix:
      Call appropraite API according to kernel version.

Enhancements
------------
1.  Request:
      Add notice to user when changing MF configuration in nvm cfg
      (option 73) that change will take effect only after reboot.

    Change:
      As requested

2.  Request:
      Add TCL environment variable to get PCI function number of the current
      device.

    Change:
      Added $::current(PCI_FUNC) variable updated in the tcl_al_update_env
      function.

3.  Request:
      Enable phy firmware upgrade for dual-media boards

    Change:
      As requested

Version 6.0.12 (April 27, 2010)
=================================
Fixes
------------
1. Problem:
      nvm cfg could not indicate to user that there are fields which are split
      per function.

   Cause:
      that feature was not supported in xls file and in scripts.

   Fix:
      add support to that feature. Now per func fields are indicated by [F]
      in the nvm cfg (today fields 118-123).

2. Problem:
      nic partitioning options in nvm cfg (options 114-123) were available
      in all boards, while they should only be enabled in 57712 board.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      fix nvm cfg file.

3. Problem:
      Subsystem Device ID nvm cfg option [9] for board A1160 was wrong.
      Value should be A1060.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      As requested.

   Impact:
      A1160G board only.

4. Problem:
      Some nvm cfg default options of board A1260G were wrong.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      Changed following default values for A1260G:
      - [11] product name - QLogic BCM57712 NetXtreme II 10 GigE
      - [33] PCI Gen2 - Enabled
      - [55] Spare Number - BCM957712A0
      - [73] Force SF Mode - Forced SF

   Impact:
      A1260G board only.

5. Problem:
      nvm cfg option 118 (mac partition func flags) was expecting decimal
      input from user instead of hex format input.

   Cause:
      wrong configuration of nvm cfg file.

   Fix:
      As requested.

6. Problem:
   (CQ 47272)
      After deleting image from extended dir diag failed to parse
      correctly the new extended dir image (usually the symptom was that num of
      images of extneded dir holds garbage value).

   Cause:
      Bug occured due to two logic problems:
      1. When updating existing image in extended dir the num of images
      increased even when image already existed.
      2. When updating extended dir image a wrong value of 0
      bytes size (of the extended dir image itself) was written to dir table
      in nvm.

   Fix:
      Changed both root causes to the correct logics.

Enhancements
------------
1.  Request:
      Add "nvm cfg" and "nvm chk" support for A1230G

    Change:
      As requested

2. Request:
      Modify LED configuration of the BCM84823 to fit the new
      phy firmware (2.25 and up)

   Change:
      As requested

   Impact:
      BCM84823 based boards only.

3. Request:
   (CQ 46982)
      if -force_mac flag is not set, do not copy MAC addresses of nic
      partition image from the dumped NVM image (located in extended dir)

   Change:
      Logics of nvm prg was changed according to the following table:

      original NVM   dumped NVM     if force_mac        if force_mac
      including NIC  including NIC  flag is set         flag is not
      part. image?   part. image?   by user             set by user
      ------------   ------------   ------------        -----------
      ------------   ------------   ------------        -----------
      ------------------------------------------------------------------------
      no             no             no nicp image       no nicp image
      ------------------------------------------------------------------------
      no             yes            dumped nvm image    dumped nvm image
                                    taken as is         with empty MACs
      ------------------------------------------------------------------------
      yes            no             no nicp image       no nicp image
      ------------------------------------------------------------------------
      yes            yes            dumped nvm image    dumped nvm image
                                    taken as is         with original MACs
      ------------------------------------------------------------------------

Version 6.0.11 (April 15, 2010)
=================================
Fixes
------------
1. Problem:
      When link speed is set to 1G, link comes up in 10G when
      connected to device which advertise 10G.

   Cause:
      BCM84823 always advertises 10G speed.

   Fix:
      When speed capability doesn't include 10G, or force speed is
      not set to 10G, disable 10G advertisment

   Impact:
      BCM84823, BCM8481

2. Problem:
      Diag was not adjusted to LM interface changes in indicate_tx and
      indicate_rx functions (usage of linked list instead of array).

   Fix:
      Change Diag to use new interface.

3. Problem:
      Potential link issue with force 1G on 8073

   Cause:
      Setting one of the registers in the force 1G sequence incorrectly

   Fix:
      Fix 1G force sequence

   Impact:
      57712 + KR only

4. Problem:
      Link LED for 10M/100M/1000M is not functional on BCM84823 based boards

   Cause:
      LED functionality was controlled by 10G core all the time.

   Fix:
      When link speed is up in 10M/100M/1000M, set led control to 1G core.

   Impact:
      BCM84823/BCM8481 based boards.

5. Problem:
      (CQ46974)
      Unable to upgrade nvm optic modules file if vendor name string length
      is the maximum valid length (16 chars).

   Cause:
      nvm fields of nvm vendor name and vendor part number sizes were exactly
      as the maximum length of the string, meaning that if using maximum
      length there isn't null terminator at the end of the string.
      Code assumed that there will be null terminator.

   Fix:
      Don't assume there is null terminator while parsing the input file.
      If there isn't, realize string length is the maximum valid length.

6. Problem:
      If optic module file includes vendor part number string of 16 char
      (maximum valid length), then nvm dump of module file will include
      empty vendor name.

   Cause:
      nvm dump code assumed string includes null terminator.

   Fix:
      Don't assume there is null terminator.

7. Problem:
      The "lmdev set_medium" command overwritten the "lmdev set_speed" setting.

   Cause:
      The "lmdev set_medium" command sets the lmdev->params.req_medium directly,
      thus over-writting the 16 MSB bits which are the required speed.

   Change:
      Change "lmdev set_medium" to use SET_MEDIUM_TYPE macro, which sets the
      requested loopback type without over-writting the 16 MSB bits required
      speed.

8. Problem:
      Driver load failure in MF configuration.

   Cause:
      if number of vnics per port is not 1 then iscsci_ooo client index is
      invalid. We didn't have a check that client index is valid before
      allocating UM resources to it. Due to that, resource were alloacted to
      invalid client.

   Change:
      Add a check that client index is valid before allocating UM resources.

   Impact:
      Issue introduced in ediag versions 6_0_9 and 6_0_10.

9. Problem:
      name string in fw_version of NCSI image was increased to 15 chars,
      while diag code expected it to be maximum 11 chars.

   Change:
      Fix diag code to enable string to be up to 15 chars.

10.Problem:
      Link down when upgrading BCM84823 phy firmware to 2.24/2.25

   Cause:
      Changes in the firmware initialization required setting different values

   Fix:
      Set the require phy register to achieve link and led in all speeds

   Impact:
      BCM84823 based boards
Enhancements
------------
1.  Request:
      Change default value of Number of VFs per PF (option 93) to 16
      in nvm cfg for all devices

    Change:
      As requested

2.  Request:
      Change default value of Force Expansion ROM adv. (option 85) to Enabled
      and OOO WoL to disabled in nvm cfg for A1288 devices.

    Change:
      As requested

    Impact:
      A1288 device only.

3.  Request:
      Add "nvm cfg" and "nvm chk" support for A1130G, A1160G, A1260G, A1102G

    Change:
      As requested

    Impact:
      None

Version 6.0.10 (March 28, 2010)
=================================
Fixes
------------
1. Problem:
      Flow control is not set on optic devices

   Cause:
      When flow-control was set to force on optic devices, configuration was
      not permeate to the MACs

   Fix:
      Set the FC configuration on optic devices according to user settings

   Impact:
      Optic devices

2. Problem:
      MAC loopback tests failed on 4 port mode.

   Cause:
      BMAC was used for MAC loopback test without consideration of link
      capabilities.

   Fix:
      Check link capabilities in shmem -
      if link is 10G capable --> use BMAC, otherwise --> use EMAC.


3. Problem:
      FC behavior is changed so that setting FC to auto when speed
      is force has no influence of to flow-control

   Cause:
      Although this configuration is not so logic, many boards have
      their configuration build this way so need to restore this
      behavior

   Fix:
      Change back to old behavior

   Impact:
      Optic devices

4. Problem:
      When RX-polarity swap is set, traffic in 1G link  doesn't pass.

   Cause:
      RX-polarity was set on the PMA/PMD side instead of the XGXS side

   Fix:
      Set RX polarity on the XGXS side of the 8073

   Impact:
      KR (BCM8073)

5. Problem:
      Nictest C4 timers test fail on non primary devices in 4 port mode.

   Cause:
      Test should not pass on non primary devices in 4 port mode.

   Fix:
      Exclude C4 from nictest on 4 port non primary devices.

   Impact:
      4 port mode devices only.

6. Problem:
      Nictest C8, C10 XGXS tests fail on non primary devices in 4 port mode.

   Cause:
      Test is not changed due to different XGXS implementation in 4 port.

   Fix:
      Exclude tests from nictest on 4 port non primary devices.

   Impact:
      4 port mode devices only.

Enhancements
------------
1.  Request:
      When link speed is set to force on copper devices, set link to
      autoneg with specific link speed advertisement since force speed
      is not copper compliant

    Change:
      As requested

    Impact:
      BCM84823/BCM8481 based devices


2. Request:
      If MCP does not exist, do not attemp to check link capabilities at
      chip_load utility.

   Change:
      Added "mcp exist" command, as one of "mcp" command options.
      At chip_load utility, do not check link capabilities if not "mcp exist".


3.  Request:
      Add PFC support for E2 on EMAC

    Change:
      As requested.

4.  Request:
      Add D2 loopback test for Quad port boards

    Change:
      As requested

    Impact:
      57712

5.  Request:
      Change A1288 default configuration for the following nvm cfg fields:
      11, 13, 15, 102 and 106

    Change:
      As requested.

Version 6.0.9 (March 23, 2010)
=================================
Fixes
------------
1. Problem:
      Potential link issue with BCM8727

   Cause:
      In BCM8727, the firmware in second port must be loaded before
      the first port.
   Fix:
      Download the second port to 8727 first during initialization

   Impact:
      57712 only and SFP+ only

2. Problem
      idle_chk read asserts fails.

   Cause:
      xSTORM_ASSERT_LIST_INDEX_OFFSET were incorrect.

   Fix:
      xSTORM_ASSERT_LIST_INDEX_OFFSET were changed to fixed 0x2000
      at idle_chk.tcl check_assertions utility and at um_lmdev.c
      um_get_last_assert_index_offset() function.

3. Problem
      (CQ 46293)
      "device" command caused segmentation fault after performing
      "pci setdut" command.

   Cause:
      Check if current device is hidden didn't verify that current
      device is valid (and it isn't valid after pci setdut command).

   Fix:
      Added check that current device is valid before checking if
      it is hidden.

4. Problem
      If machine included more that one device, memory problems (such as
      receipt of empty packets) occurred sporadically.

   Cause:
      PCI streaming DMA operations were called with wrong data direction
      parameter.

   Fix:
      Change data direction to be towards the device instead of from it.

5. Problem
      CQ46391 D3 fails in host loopback mode on E2 linux lediag

   Cause:
      Received packet includes additional two FF bytes.

   Fix:
      The fucntion um_get_phys_addrs() in linux\kernel\um_main.c file
      includes different handling for loppback packet.
      Added offset of two bytes to this loopback packet handling,
      since new FW adds two bytes padding to improve DMA performance.

   Impact:
      Linux lediag only.

6. Problem:
      BCM8073 isn't able to link up on specific board

   Cause:
      The default state of the GPIO1 is high and the PHY might not be
      in the good reset state after a POR

   Fix:
      Toggle GPIO1 from LOW to HIGH during common init

   Impact:
      57112 + 8073

7. Problem:
      link speed was not set in L4 regression tests

   Cause:
      relevant operation was not performed

   Fix:
      read relevant value from shmem and perform lmdev set_speed according
      to that value


Enhancements
------------
1. Request:
     Add NVM default configuration for C006CG board.

   Change:
     Updated NVM excel file and nvm_meta.tcl script as requested.

2. Request:
     Add logging mechanism for tcl commands performed.

   Change:
     Added command "log tcl <filename>".
     After this func is called diag logs to that file all tcl commands
     performed since that moment until exiting from diag.

3. Request:
     Enable nvm cfg scripts to assign values even if some of the
     IDs is not included anymore in the ncm cfg known IDs.

   Change:
     As requested.

4. Request:
     Remove unneeded options from nvm cfg.

   Change:
     The following options were removed from nvm cfg as they aren't used:
     2)  Power Dissipated by common logic
     3)  Power Management scale
     17) Number of UMP devices
     31) Autonegotiation type Enabled bitmas
     32) One time auto detect grace period
     54) MII mode
     62) SMBus Address
     64) Reset MCP on Core reset
     71) SMBus Timing

5. Request:
      Add new NVM option 124 "Swap PHY config" which will force future drivers
      to swap the phy configuration of the second phy and the first phy
   Change:
      As requested.

   Impact:
      Dual media board

6. Request:
      Add new NVM options 125 "GPIO config" which enable to set the default
      GPIO value of each of the 4 GPIOs to with N/A(default), Low, High or Input

   Change:
      As requested.

   Impact:
      Dual media board

7. Request:
      Swap default phy configuration of the C006CG dual-media board

   Change:
      As requested.

   Impact:
      Dual media board

8.  Request:
      Split speed and duplex parameters into two media

    Change:
      As requested

9.  Request:
      Support powering down the BCM84823 copper core when phy
      configuration is set to second_port

    Change:
      As requested

    Impact:
      BCM84823 dual-media

10. Request:
      If performing pcicfg read command from invalid pci address
      return 0xffffffff instead of an error message, in order to
      be compatible with common scripts.

    Change:
      As requested

11. Request:
      Add support for 4-port mode device

    Change:
       As requested.

    Impact:
       57712

12. Request:
      Add support for force 1G for KR triggered by new nvm cfg option 127:
      "Force KR enabler"

    Change:
       As requested.

    Impact:
       KR(BCM8073)

Version 6.0.8 (March 8, 2010)
=================================

1. Problem:
      The command "mcp trace" failed via UART (NO_PCI mode)

   Cause:
      The setting of dreg.spad_base was dependent on the $::current(CHIP_NUM),
      which is invalid in NO_PCI mode.

    Fix:
      Incase of NO_PCI mode, read the chip number from MISC_REG_CHIP_NUM
      via uart, and set the dreg.spad_base according to the chip number.

    Impact:
      57712 and 57800.

2. Problem:
      Upgrading BC to a larger BC image fails if EXTENDED_DIR image exists,
      (in an NVM location lower than the BC location in NVM).

   Cause:
      The "image_is_in_extended_dir" flag was always set if EXTENDED_DIR exist.
      Thus, when BC image needed to move, to avoid "holes" in NVM, the entry in
      extended dir was updated with BC's new location in NVM, instead of the
      BC dir entry.

    Fix:
      Set the "image_is_in_extended_dir" flag only if an image from extended dir
      needs to move.

3. Problem:
      Storing license key on dual media board fails.

   Cause:
      The dual media board sub-vendor ID (0x1137) was not supported.

   Fix:
      Incase sub-vendor ID configuration in NVM matches 0x1137 use
      dummy MAC address (flag hwkey_used is set).

   Impact:
      Dual media board


4. Problem:
      BCM84823 Copper link doesn't come up

   Cause:
      Starting from firmware 2.20, BCM84823 enforces the XGXS to
      link first with the BCM84823 before it triggers LASI.

   Fix:
      Set the appropriate flag for the 84823 which enforce XGXS
      initialization before external link is up

   Impact:
      BCM84823(copper)



Enhancements
------------
1. Request:
      Add new option "-nicp" to "nvm upgrade", to allow storing
      NIC_PRTION image type in extended dir in NVM.

   Change:
      As requested.

2. Request:
      Add to nvm cfg option to control MAC partition configuration
      that will effect mac partition image in extended dir.

   Change:
      New options were added to nvm cfg (114-123). Some of these
      options are global, some per port and some per function.

      If MAC partition image is not included in extended dir (or
      if extended dir is missing) all these values will have
      default of zeros.

      If user changes any of these values a mac partition image will
      be written to extended dir. If that image is missing, it will
      be created. If extended dir image is missing, it will be created.

3. Request:
      Add new option to "Force SF mode" in NVM configuration
      of: Switch Independemt.

   Change:
      As requested.

4. Request:
      Add default nvram configuration support for A1288 board.

   Change:
      As requested.

Version 6.0.X (February XX, 2010)
=================================
Fixes
-----
1. Problem:
      Loading ediag while bnx2x driver was up (E2) caused link to toggle
      (down and then up again).

   Cause:
      lm layer tried to read license info from SHMEM for two ports, but that
      data was not initialized by the boot code for the second port.
      Therefore, parity error on scratchpad occurred, and due to that
      bnx2x performed chip reset which toggled link state.

    Fix:
      Try to read license info for each port only in case it includes
      SHR_MEM_VALIDITY_LIC_MANUF_KEY_IN_EFFECT in its validity bits.
      If that flag is set, then we can be indeed sure that the
      data was written and is valid.

2. Problem:
      "nictest" on 57712 device in 4-port mode runs redundant tests
      on devices 3,4.

   Cause:
      "nictest" did not exclude group A,B,C tests on
      blocks which don't include split registers, therefore no
      need to repeat these tests on devices 3,4.

    Fix:
      Exclude group A,B,C tests on blocks which do not include
      split registers.

    Impact:
      57712 4-port mode only.

3.    In VF enabled version, if number of VFs per PF (in NVM) was 0,
      device was shown as hidden. But, in such a case, device should
      be valid like in a non VF version.

   Cause:
      ediag_get_sriov_bar failed due to a failure in
      pci_resources_start.

    Fix:
      ediag_get_sriov_bar is called only if number of VFs per PF in
      pci configuration space is not zero.

    Impact:
      VF enabled version only.

4. Problem:
      Trying to save new member to nvm config (active display) caused
      DbgBreak.

   Cause:
      lm_set_virt_mode is called when saving nvm cfg, and that func
      generates DbgBreak if virtual mode is already set.

    Fix:
     Removed DbgBreak from lm_set_virt_mode in case virtual mode
     was already set.

    Impact:
      VF enabled version only.

5. Problem:
      NVM operations on VF devices caused logic errors + debug breaks.

   Cause:
      NVM operations try to reach unreachable registers in case the
      device is VF.

    Fix:
     Disable all NVM operations on VF devices.

    Impact:
      VF enabled version only.

6. Problem:
      vf_en operation failed if in last run of ediag vf_en was
      called, and then DbgBrk occurred. In such a case user
      can't re-enable VFs because vf_dis call returns error.

   Cause:
      Inconsistency between data member holding status of VFs
      to real status in case of DbgBreak.

    Fix:
     if um_vf_en function fails, before returning an error
     try to disable VFs (low level function) and then
     re-enable it. Only if that operation also fails,
     return an error.

    Impact:
      VF enabled version only.

7. Problem:
      The following two NVM fields should be able to get
      values in the range 0..64, and not 0..63 as it is
      now:
      - Number of VFs per PF
      - Number of MSIX vectors per VF

   Cause:
      Those fields size is 6 bits.

    Fix:
     Increase those field sizes to 7 bits, and add
     special handling to prevent setting to values
     larger than 64.

    Impact:
      VF enabled version only.

8. Problem:
     "nvm crc" command on 57712 device, did not display BC1 and FEAT_INFO_2.

   Cause:
      BC1 was not displayed due to a validity check of image length < 16K bytes.
      BC1 length in 57712 device is larger than 16K.
      FEAT_INFO_2 was not added to "nvm crc" display.

    Fix:
     Validity check of image length < 16K was removed to allow larger images,
     such as BC1 to be displayed in "nvm crc".
     FEAT_INFO_2 was added to "nvm crc" display on 57712 device only.

    Impact:
      57712 device only.

9. Problem:
     (CQ 45809) - iSCSI adapter not enumarated after installing/upgrading EVBD
     driver.

   Cause:
     lm_get_shmem_license_info couldn't find license in that scenario because
     SHR_MEM_VALIDITY_LIC_UPGRADE_KEY_IN_EFFECT was not checked.


    Fix:
     Added SHR_MEM_VALIDITY_LIC_UPGRADE_KEY_IN_EFFECT flag to the check.

10. Problem:
     All E2 VF regression tests fails.

   Cause:
     dg_vf_en created new vd devices without initializing the new
     "hidden" field. Due to the fact that this field included
     garbage in it, each time the flow was different because
     sometimes diag related to these devices as hidden and
     sometimes not.

    Fix:
     Initialize hidden field to zero in dg_vf_en func.

     Impact:
      VF enabled version only.

11. Problem:
     "Gpio" command on 57712 device 2 does change MISC_REG_GPIO bits[3-0]
     instead of bits [7-4].

   Cause:
     "Gpio" command used PORT_ID macro to decide which gpio port bits
     to change.
     On 57712 device 2 PORT_ID is also 0, thus bits[3-0] were changed.

    Fix:
      On 57712, use PATH_ID macro instead of PORT_ID.

     Impact:
      57712 device only.

12. Problem:
     L2 tests failed.

   Cause:
     New FW which added two bytes to received packet due to performance
     (DMA allignment)

    Fix:
      1) Added to L2 management functions a parameter regarding
      the offset of data ptr from packet start ptr. In case
      of received packet, called those functions with offset
      of 2.
      2) in linux packet copying to user space - add two more bytes
      3) in TCL lso tests - add two bytes to sync packet start
      4) Changed location of CRC bytes in reference to packet
      start.

13. Problem:
     ediag compilation fail

   Cause:
     small problems in tcl_mcp files.

    Fix:
      small compilation fixes.

14. Problem:
      Debug print-outs on DOS ediag with 57712 devices.

   Cause:
      Some LM print-outs debug level was FATAL instead of WARN/INFORM.

    Fix:
      Changed LM debug print-outs from FATAL to WARN.

15. Problem:
      On some setups if bnx2x was up, loading ediag failed and
      debug break occured.

   Cause:
      Register read values of 0xFFFF. It occured because diag driver did not
      change to D0 power state during init because another driver was up.

    Fix:
      Enable change to D0 state even if another driver is up. Now the only
      action avoided if another driver is up is the change to D3 state
      (because we don't won't to switch to off state if another driver
      needs the device).

   Impact:
      If loading diag after another driver (bnx2x) is up, the power state
      of the device might be changed (from D3 to D0 state) and remain so
      even after unloading diag. In other words, loading and unloading
      diag might change power state.

16. Problem:
      "idle_chk" utility in NO_PCI mode failed with error
      "expected boolean value but got NONE"

   Cause:
      1) "reg_read" utility included check of environment variable
         $::current(DID), which is not available in NO_PCI mode.
      2) "is_4port_mode" utility included check of environment
         variable $::current(CHIP_NUM) which is not available
         in NO_PCI mode.

   Fix:
      1) In "reg_read" utility, check $::current(DID) only if
         not in NO_PCI mode.
      2) In "is_4port_mode", read directly from MISC the chip
         number instead of using $::current(CHIP_NUM)

   Impact:
      NO_PCI mode only.

17. Problem:
      Compilation errors on PPC.

   Cause:
      lm functions called by um_common under BIG_ENDIAN flag were not
      declared in header file and were missing one parameter.

   Fix:
      Fixed.

18. Problem:
      "grcDump" or "read_regs_all" utilities used via serial
      (in NO_PCI mode) causes DbgBreak on the target machine.
      DbgBreak is on lm_stats.c (158) Condition failed:
      if (val >= MAX_STATS_TIMER_WAKEUP_NO_COMPLETION).

   Cause:
      Attempt to read registers xSEM_REG_SEM_FAST_PAS_REG_SET0 and
      xSEM_REG_SEM_FAST_PAS_REG_SET1.

   Fix:
      Added registers xSEM_REG_SEM_FAST_PAS_REG_SET0,
      xSEM_REG_SEM_FAST_PAS_REG_SET1 to read_regs exception list.

   Impact:
      NO_PCI mode only.

19. Problem:
      Storing license key on dual media board fails.

   Cause:
      The dual media board sub-vendor ID (0x1137) was not supported.

   Fix:
      Incase sub-vendor ID configuration in NVM matches 0x1137 use
      dummy MAC address (flag hwkey_used is set).

   Impact:
      Dual media board

Enhancements
------------
1. Request:
      Add to "nictest" test B30 "Block VFC Memory Test".

   Change:
      Added new TCL script vf_ram.tcl which implements the VFC RAMs test.

   Impact:
      57712 only.

2. Request:
      In order to be able to add to GRP dump dumping of split vf registers,
      add a TCL command returning TCL list of all enabled vf devices.

   Change:
      Added new TCL device command named vf_list. In order to call it
      type "device vf_list", and it will return numbers of VF enabled
      devices in the format "PF.VF".

3. Request:
      Add 57800 device chip number to TCL testing scripts.

   Change:
      As requested.

   Impact:
      57800 only.


Version 6.0.6 (February 3, 2010)
=================================

Fixes
-----
1. Problem:
      Using "license storekey" on 57712 second device fails with error
      "Key is either corrupted or does not exist".
      On 57712 4-port board, "license storekey" on device 2 succeeds
      only if performed after "license secret" to device 3.

   Cause:
      The utility "get_key_hash" which is used to check the key
      according to the shared secret, did not get the shared secret
      from the correct place in NVM, according to current path, port.

    Fix:
      Fixed the utility "get_key_hash", to read the shared secret
      from the correct NVM offset, according to current path and port.

    Impact:
      57712 only.

2. Problem:
      nvm size was not received correctly in case of hidden device.

   Cause:
      nvm size was received in the same way for valid and hidden devices.
      But, in case of hidden devices we can't be sure the data written
      by lm is correct.

    Fix:
      Added a function named dg_get_nvm_size_directly which reads nvm
      size directly from the registers.

    Impact:
      Hidden devices only.

3. Problem:
      grcDump script collected stats for an "over the limit" device

   Cause:
      loop ran one cycle more than needed.

    Fix:
      Changed number of loops.

4. Problem:
      hidden devices were not colored in DOS.

   Cause:
      color chosen for hidden device was the
      default stdout color in DOS.

    Fix:
      Changed hidden device color to brown.

5. Problem:
      Test A36 "PGLUE_B Registers Test" failed on second device
      when runs as part of whole "nictest", in 4-port mode.

   Cause:
      Reset value of PBLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER is
      not as expected (expected 1 read value 0).
      The common init is zeroing this bit.

    Fix:
      Add PBLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER to the exception
      list of registers which are not checked.

6. Problem:
      PCIE lane speed in the device information is shown as (unknown)
      in 57712 device.

   Cause:
      The link status register in PCIE configuration space is different
      than previous devices: 0 - indicates 2.5G, 1 - indicates 5G
      (in previous devices 1 - indicated 2.5G 2 - indicated 5G).

    Fix:
      Fix was made in um_get_dev_info(), different decoding of
      the lmdev HW information "pcie_lane_speed" for 57712 device rev A0.

    Impact:
      57712 rev A0 only.

Enhancements
------------
1. Request:
      Add to "nictest" test C2 "CAM R/W functionality test",
      check of VFC CAMs.

   Change:
      Added new TCL script vf_cam.tcl which implements the VFC CAMs check.

   Impact:
      57712 only.

2. Request:
      Add to "idle_chk" support for 57800 device.

   Change:
      Added to the idle_chk.csv excel file, new bit mask (bit 3)
      for 57800 device checks.
      Added checks to 57800 device, same as 57712 device by setting
      chip bit mask 3 whenever chip bit mask 2 is set.
      Added to CHIP_MASK_CHK macro in idle_chk.tcl support
      for new bit mask 3.

3. Request:
      Cosmetic changes in device list view.

   Change:
      1) Changed the format "device:is_hidden" (i.e: 1.1)
      to format: "1" or "1H" (in case it is hidden).
      2) Added support in H postfix in device selection
      format accordingly.

4. Request:
      Notify user if "driver" command failed.

   Change:
      Added notification to user.

5. Request:
      Support grcDump and idle_chk scripts for hidden devices.

   Change:
      1) Added environment variable $::current(DEFAULT_DID) holding
      dev ID of a valid device, which is used by hidden devices in
      case $::current(DID) is not valid.
      2) Direct registers access changed to indirect accesses in
      TCL scripts in case device is hidden.
      3) Check assertions in grcDump scripts is functional only
      if device isn't hidden.

6. Request:
      CQ45303 Add configuration support to new MBA boot retry feature

   Change:
      Added NVM configuration option 89 which enables to change
      the MBA Boot Retry Count (0-7).

      Added command line option "-mbabr <MBA Boot Retry Count (0-7)>"

Version 6.0.5 (January 29, 2010)
=================================

Fixes
-----
1. Problem:
      CQ45572 Test C3 "CAM Search test" fails on 57710/57711 with unknown variable
      "cam_done_addr".

   Cause:
      One of the changes for supporting 57712 was to increase number of
      tested CAMs. In 57710/57711 devices there are fewer CAMs, thus
      there was an attempt to access invalid CAM.

    Fix:
      Added a variable which hold the number of tested CAMs in this test.
      The number of tested CAMs is different between 57710/57711 devices
      and 57712 device.

    Impact:
      Failure was introduced in version 6.0.3.

2. Problem:
      TCL syntax error incase "nictest" tests D1, D2, D3 fail with
      no L2 packets received.

   Cause:
      TCL script l2lb.tcl returned error message incase no packets received
      instead of failure value.

    Fix:
      Return failure value incase no packets are received instead of error
      message. Error message is printed to screen.

    Impact:
      Nictest test F14 was changed to check pass/fail value instead of
      string compare of the error message.

3. Problem:
      On 57712 4-port mode "nictest" test D2 "PHY loopback test"
      sets loopback to XGXS 10G loopback and speed to 10G instead
      of using XGXS_1G loopback and speed 1G.

   Cause:
      TCL utility "chip_load" incase of PHY loopback, always used
      XGXS 10G loopback and speed 10G.


    Fix:
      Added to TCL utility "chip_load" check of speed capabilities in shmem.
      In case speed capabilities do not support 10G, set XGXS 1G loopback
      and speed to 1G.

    Impact:
      NVM configuration option 35 "Speed capability" should be set correctly,
      otherwise test D2 will use wrong XGXS loopback and speed.

4. Problem:
      T1204 board NVM configuration of speed capability (option 35) was
      set incorrectly to 50 (10G, 1G support).

   Cause:
      Wrong configuration for T1204 board.

    Fix:
      Fixed T1204 board configuration option 35 "speed capability" to
      10 instead of 50. Only 1G speed capability.

    Impact:
      T1204 board only.

5. Problem:
      Unable to upgrade MBA image on 57712 device.

   Cause:
      Check of valid device ID of image did not support allowed 57712
      device IDs.

    Fix:
      Added to dg_update_mba_hdr() validity check of device id the 57712
      device IDs.

    Impact:
      57712 only.

6. Problem:
      57712 nictest occasionally failed on D7, A33, A34 and group C

   Cause:
      Idle check failed if rebooted (not power cycle) after driver was loaded

    Fix:
      Report this specific PCI condition as warning and not error

    Impact:
      57712 only.

7. Problem:
      Test D7 on the second path of 57712 4-port mode fails due to
      insufficient licensed TOE connections.

   Cause:
      The D7 test uses "license display" to get the number of licensed
      TOE connections. The "license display" command failed on the
      second path, cause of wrong calculation of the NVM offset of
      the license key.

    Fix:
      Updated "license display" command to get the NVM offset of
      license key according to the current path and port, using the
      dg_get_nvm_offset_for_license() function.

    Impact:
      57712 only.

8. Problem:
      Segmentation fault in case of uninitialized chip number environment
      variable.

   Cause:
      Didn't have a check that tcl layer returned a non NULL response.

    Fix:
      Validate response isn't NULL.

9. Problem:
      Inconsistency of ediag devices view while bnx2x module is up.

   Cause:
      pci_enable_device was not performed if another driver (bn2x2) was up.

    Fix:
      Perform pci_enable_device even if another driver is up.

    Impact:
      edrv doesn't call pci_disable_device when exiting because it might
      have races with bnx2x. Therefore, some devices might be left
      in enabled state even when not needed.

10. Problem:
      ediag "nictest" sometimes does not stop testing when test fails
      (and -cof option not used).

   Cause:
      ediag "nictest" stopped testing only if test completed with TCL_ERROR
      (e.g. incase of TCL syntax error), it did not stop testing incase
      test returned failure value (-1).

    Fix:
      Fixed nictest_run_once() check which decides if to stop testing.
      Stop test incase of TCL_ERROR or test return failure value (-1).

Enhancements
------------
1. Request:
      Option to see devices that failed during the driver initialization
      process ("hidden devices").
      In addition, should be able to perform several options regarding
      those devices, such as registers operations and NVM operations.

      Pay attention that registers operations will be performed indirectly
      even if the command didn't request it specifically
      (i.e.: if performed "reg read/write" operations).

   Change:
      In order to see hidden devices list type "device -a". The default
      "device" command will not show hidden devices.
      A hidden device will be shown in grey color (unlike valid devices
      colored in black) and "HIDDEN" will be added to the devices prompt.
      When switching to a hidden device, the whole prompt will change to
      grey color as well.

      Pay attention that in manufacturing mode Nictest will run only on
      valid devices!

   Impact:
      hidden device will be chosen as default device in case that all
      devices are hidden.

2. Request:
      Don't show "NONE" in device prompt, as it is static and not relevant
      in ediag.

   Change:
      Removed that string from device prompt.

Version 6.0.4 (January 27, 2010)
=================================

Fixes
-----
1. Problem:
      A36 "Block PGLUE_B Register Test" on 57712 4-port mode.

   Cause:
      Register PGLUE_B_REG_PORT4MODE_EN test fails.

    Fix:
      Exclude PGLUE_B_REG_PORT4MODE_EN from testing.

    Impact:
      57712 only.

2. Problem:
      nvm_cfg configures only first 2 ports on 4-ports mode.

   Cause:
      nvm_cfg uses hard coded port_max value of 2.

    Fix:
      port_max value is now calculated based on real values of Port Hide and 4port mode
      parameters.

    Impact:
      57712 only.

3. Problem:
      Performing "license storekey" on device 3 on 4-port mode, corrupted the license of device 1.

   Cause:
      The calculation of NVM offset of the manuf_key_info/upgarde_key_info did not use the
      path number correctly.

   Fix:
      Added the dg_get_nvm_offset_for_license() which calculates the NVM offset of the requested
      license type (DATA_TYPE_SHARED_SECRET/DATA_TYPE_MANUF_KEY/DATA_TYPE_UPGRADE_KEY) according
      to the current device path number and port number.

   Impact:
      Change made for 57712.
      Might affect "license" commands (storekey/chkkey) of 57710,57711 as well.

6. Problem:
      No MSI-X in Windows OS

   Cause:
      Number of MSI-X vectors per PF is limited to 64 in 57712 but the nvram was
      configured to 72 vectors

   Fix:
      Limit the nvram configuration to 64. Bootcode 6.0.3 and above will use
      this value per PF and will not devide it by 4 in case of multi-function

   Impact:
      57712 only

7. Problem:
      T1204 SDID was configured to 1203 by default instead of 1204

   Cause:
      Wrong value was used

   Fix:
      Changed to SDID for T1204 to 1204

8. Problem:
      Test C8 "XGXS Register access test" fails on 57712 4-port mode.

   Cause:
      XGXS_CONTROL register has different reset value in 4-port mode.

   Fix:
      Exclude register XGXS_CONTROL from testing.

Enhancements
------------
1. Request:
      Updated RDF file for 57712 device.

   Change:
      As requested.


Version 6.0.3 (January 26, 2010)
=================================

Fixes
-----
1. Problem:
      pstat is not working on DOS diag

   Cause:
      The pstat register file name was over 8 characters

   Fix:
      Rename the pstat register file

2. Problem:
      DOS diag cannot load the driver for the second time on 57712

   Cause:
      Interrupt block wasn't initialized properly by the driver due to internal
      driver counters not being set properly in the flow.

   Fix:
      set internal driver counters at the correct place in the flow (before
      chip-init)

   Impact:
      57712 only

3. Problem:
      T1204 nvram image was not set to 4 port mode

   Cause:
      Wrong value in the nvram configuration

   Fix:
      Update the port mode of T1204 to "4 port mode"

Version 6.0.2 (January 25, 2010)
=================================

Fixes
-----
1. Problem:
      Nictest group C tests failed on 57712 emulation.

   Cause:
      Missing initialization of PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER.

   Fix:
      Added initialization of PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER
      in REG_INIT.TCL script.

2. Problem:
       CQ41043 Cont. EXTENDED_DIR image CRC failure.

    Cause:
       The EXTENDED_DIR was overwritten by another image, cause function
       dg_find_room() did not support moving extended dir images when
       required to close empty gaps in NVM.

    Fix:
       Added to function dg_find_room() support for moving extended dir
       images to avoid empty gaps in NVM.

       Also changed extended dir structure to include static 32 entries,
       to simplify the fix.

       Also added to check of enough_room() in NVM the total byte count of
       images in extended dir and removed redundant copy to
       temporary buffers.

    Impact:
       Might affect "nvm upgrade" of images NVM.


3. Problem:
      Nictest test A33 "Interrupt test with MSIX functionality" cause
      system halt when ran after test A30 "Block EMAC Register Test"
      on 57712 device.

   Cause:
      Missing "mcp reset" at the end of A30 test.

   Fix:
      Added to cleanup function at the end of A30 test "mcp reset"
      instead of the "mcp run".

4. Problem:
      Nictest test A36 "Block PGLUE_B Register Test" cause system halt
      when ran on 57712 device.

   Cause:
      Changing register PGLUE_B_REG_CPU_MBIST_MEMCTRL_0/1_CNTRL_CMD
      values cause system halt.

   Fix:
      Added PGLUE_B MBIST & TM registers to the exception list.

5. Problem:
       nvm cfg configured only current device in diag.

    Cause:
       The nvm .tcl script used lediag variable ::current(FUNC),
       which for 57712 is not useful.

    Fix:
       Use of ::current(FUNC) variable was replaced with the value of
       ME Register of the chip.

    Impact:
       Only relevant for 57712.

Enhancements
------------
1. Request:
      Add to "nvm cfg/chk" support for 57712 bring up boards

   Change:
      As requested.

Version 6.0.1 (January 20, 2010)
=================================

Fixes
-----
1. Problem:
      Utility chip_load check of link speed was incorrect.

   Cause:
      String match between requested link speed and current link speed
      was incorrect.

   Fix:
      Fixed the string match between requested link speed and current
      link speed.


2. Problem:
      DbgBreak() upon using grcDump or read_regs_all utilities.

   Cause:
      Attempt to read from HC registers STATISTIC_COUNTERS causes
      GRC timeout assert.

   Fix:
      Added HC_REG_STATISTICS_COUNTERS to read_regs_all exception list.


3. Problem:
      Nictest test F18 "External LB, RX BD Ring full test" failed since
      ring is not full before receive.

   Cause:
      After VMQ changes the gap between producer and consumer index
      when ring is full was changed.

   Fix:
      Changed the test's check of ring full.
      Changed the expected gap between producer and consumer index
      when ring is full (from 10 to 2).


Enhancements
------------
1. Request:
      Add to "nvm" command options support for dual path.

   Change:
      As requested.


2. Request:
      Add to "license storekey" command support for dual path.

   Change:
      Get the correct NVM offset of current device MAC address,
      depending of its path and port.



Version 6.0.0 (January 10, 2010)
=================================

Fixes
-----
1. Problem:
      Linux eDiag: CQ41546 Lediag is showing an unaligned access when upgrading
      l2 firmware on IA64 system.

   Cause:
      There were a few statically allocated `char' buffers accessed using
      `*((u32_t*)...)' semantics.

   Fix:
      Allocate a 3 bytes bigger buffer and align a start pointer to dword
      boundary.

   Impact:
      None.

2. Problem:
      CQ41205 test A1 fails on 57711 after running tests on 57710.

   Cause:
      1. The 57711 RDF was not parsed, thus registers which only exist
         on 57711 were unknown.
      2. Register test on specific block parses only the block's registers.
      3. Some regutils.tcl procedures did not re-parse the RDF incase
         array regsOffset already exists.
      4. In manufacture mode, the default test matrix was as the previous
         tested device matrix.
         Incase the devices are of different type, tests which should be
         disabled for that chip type, ran and failed.

   Fix:
      1. If chip number is different then last chip number, the relevant
         RDF file should be parsed.
      2. Incase of parsing RDF for specific block unset array regsOffset
         at the end of test, so that next test will re-parse the RDF for
         the next tested block.
      3. Check if re-parse of RDF file is required (incase chip is different
         than last tested chip) is done only inside parse_rdf proc.
         This check was removed from other procedure.
      4. Get the default test matrix for each tested device.

   Impact:
      None.

3. Problem:
      (CQ41533) Unapproved modules behavior is not enforced according to nvram
      configuration

   Cause:
      In case the module was not approved, the function quit before enabling the
      Tx laser - so even when set to warning, there was no link. When set to
      power off the module, there was continues false indication of over current
      when the module was extracted

   Fix:
      When set to warning - enable the module. Validate that the module is
      present before checking for over current indication

   Impact:
      None

4. Problem:
      CQ 41652 A12. Block NIG Register Test fails on OEM NIC
      when management firmware is enabled.

   Cause:
      Read-only register NIG_REG_TIMER0_COUNTER value changed during test.

   Fix:
      Added another reset_chip incase of NIG test to avoid any chance
      of NIG registers change incase managment firmware is enabled.

   Impact:
      None.

5. Problem:
      CQ 41291 NCSI traffic stops  and does not resume upon running efi ediag
      nictest and exit using Control C.

   Cause:
      When exiting in the middle of groups A, B or C tests chip was left in a
      garbadged state.

   Fix:
      Reset the chip and MCP, when exiting and if driver hasn't been loaded.

   Impact:
      None.

6. Problem:
     Nvm upgrade of ISCSI ipv6 v2 fails, if there is no pre-existing cfg blk in NVRAM.

   Cause:
     Did not handle correctly the case of non-existing cfg block in NVRAM.

   Fix:
     Incase cfg block does exist, set the ctrl flags according to ib option (-ib_ipv6)
     and program the ISCSI image.

   Impact:
      None.

7. Problem:
     (CQ41662, CQ41780) Linux eDiag: Running a few iterations of any test from
     group D causes a kernel panic.

   Cause:
     Semaphores were interrupted by constantly sent from ISR SIGIO signal
     (needed for DbgBreak() implementation). This caused collisions on critical
     code sections and, as a result, memory trashing.

   Fix:
     Do not interrupt semaphores unless there was a real DbgBreak() or SIGINT.

   Impact:
      None.

8. Problem:
      CQ41417 New ediag versions hang when running "ext_phy_fw update" command
      to upgrade 8073 SPI ROM on OEM platform.

   Cause:
      "ext_phy_fw upgrade" should be changed to use new common phyfw_upgrade
      module functions.

   Fix:
      Added use of new common phyfw_upgrade module functions.
      Added required callback functions for new phyfw_upgrade module.

   Impact:
      None.

9. Problem:
      CQ 42152 Upgrade 8727 PHY Firmware fails on boards with NVM
      configuration of external PHY type set to BCM8727_NOC.

   Cause:
      External PHY type BCM8727_NOC is'nt one of phyfw_upgrade
      module known types.

   Fix:
      Incase of NVM configuration of external PHY type BCM8727_NOC,
      forward type BCM8727 to phyfw_upgrade module.

   Impact:
      None.

10. Problem:
      CQ 42201, 42207 Group D tests fail incase NCSI enabled.

   Cause:
      Since BMAC is in loopback mode in these tests, NCSI traffic is
      received by diag and cause test failure.

   Fix:
      Disable the egress traffic of NCSI by setting registers
      NIG_REG_EGRESS_UMP0/1_IN_EN to zero at the beginning of the test.

   Impact:
      None.

11. Problem:
      CQ 41983 Test A30 Block EMAC Register test fails on single-port boards

   Cause:
      Test A30 runs on both EMAC0 and EMAC1.
      EMAC1 does not exist on a single-port board.

   Fix:
      On single-port board do not attempt to test EMAC1.

   Impact:
      None.


12. Problem:
      CQ 41049 Request "pci setdut" with no arguments to display
      current bus/device/function.

   Cause:
      Check on the allowed number of arguments failed, showing the usage.

   Fix:
      Allow "pci setdut" command with no arguments. In this case, show the
      current domain/bus/device/function.

   Impact:
      None.


13. Problem:
      When running "nictest " with -debug option, last debug
      information line is missing.

   Cause:
      Setting the interp result overrides the last debug information.

   Fix:
      Removed the setting of interp result.
      Result is displayed within "nictest_run_once".

   Impact:
      None.

14. Problem:
      Spelling mistake in "nvm cfg" option 70.

   Cause:
      "Board Reversion" instead of "Board Revision".

   Fix:
      Fixed.

   Impact:
      None.

15. Problem:
      CQ 41595 Everest: eDIAG: Version for PXE is misaligned in eng mode "NVM DIR".

   Cause:
      String format in MBA print procedure was misaligned.

   Fix:
      Fixed.

   Impact:
      None.

16. Problem:
      CQ 42296, 41600 Everest: eDIAG breaks when trying to upgrade single image
      in the combo MBA binary.

   Cause:
      MBA version validation supported only string format MBA x.x.x

   Fix:
      Added new procedure for MBA version validation which supports different
      images (EFI/MBA/Fcode etc).

   Impact:
      None.

17. Problem:
      CQ 43157 Everest: eDIAG upgrading combined MBA image (with UEFI drivers
      inside) does not update PCI ROM header device ID of all combined images.

   Cause:
      Update PCI ROM header device ID was done only for the first image inside
      the combined image.

   Fix:
      When upgrading combined MBA image, update PCI ROM header device ID
      of all images inside the combine MBA image.

   Impact:
      None.

18. Problem:
      Diag failed to compile on FC11.

   Cause:
      Semantics bug: used #elif X for macro that was defined with -DX
      expression in a compiler command line.

   Fix:
      Use #elif defined(X) instead of #elif X.

   Impact:
      None.

19. Problem:
      Direct boards pause capabilities are not resolved as expected

    Cause:
      Pause capabilities are negotiated over different registers,
      hence require distinction between CL73 and CL37.

    Fix:
      Verify CL73 negotiation was completed as well as that
      link-partner supports CL73 to conclude CL73 link up

    Impact:
      None

20. Problem:
      Kernel panic when printing a NULL pointer with %s format using
      DbgMessageX() interfaces

    Cause:
      debug_sprintf() function wasn't supporting such an argument for this
      format

    Fix:
      Added the ability to debug_sprintf() to accept NULL pointer as parameter
      to %s format

    Impact:
      None

21. Problem:
      ioctl() of XXX_poll_cq() returned an undefined value as a status in FLR
      flow

    Cause:
      Kernel implementation of the appropriate ioctl() wasn't uploading a
      status to the user layer in case of a failure of a um-function (FLR case)

    Fix:
      Always upload a status to the user layer from the XXX_poll_cq() kernel
      functions

    Impact:
      None

22. Problem:
      CQ44303 Ediag -c <dev#> fails A33 test on 57710 in a specific setup
      configuration which contains 57711 as first board.

    Cause:
      The part of code which handles specific devices selected (-c <dev#)
      was missing read of test matrix default state of each test for this
      device type.

    Fix:
      Add to code part which handles specific device selected (-c <dev#>)
      read of test matrix default state of each test for this device type.
      Similar to fix of CQ41205.

    Impact:
      None

23. Problem:
      CQ43855 Upgrade ISCSI_B appended image is showing failed message when
      I_B_CPRG image exits in NVM.

    Cause:
      When upgrading appended ISCSI_B and I_B_CPRG image, it forces to upgrade
      I_B_CPRG image as well. But since I_B_CPRG version is the same, it failed
      the version validation function.

    Fix:
      Incase of appended ISCSI_B and I_B_CPRG image upgrade, force I_B_CPRG
      upgarde without version validation.

    Impact:
      None

24. Problem:
      CQ41232 Management gets incorrect AN and FC bit values.

    Cause:
      FC wasn't updated correctly during link up event.

    Fix:
      Extract all status_link information correctly.

    Impact:
      None.


25. Problem:
       BCM8481 doesn't negotiate FC capabilities.

    Cause:
       FC capabilities weren't advertised during phy initialization.

    Fix:
       Set BCM8481 FC capabilities during init stage.

    Impact:
       None.

26. Problem:
      CQ43801 Ediag "nvm fill" command does not accept filling memory
      with 0xFFFFFFFF

     Cause:
      The "nvm fill" command interpreted the value as singed argument and if the
      highest bit was set, the value was interpreted as a negative number and so
      the command failed.

    Fix:
      The data is unsigned and there is no need to test if it is negative or not.
      Removed the redundant check.

    Impact:
      None

27. Problem:
      CQ43801 Eediag "nvm crc" reports different CRC values on same image/block

     Cause:
      Additional 1-3 bytes are added to the image (for a multiple of 4 bytes).
      These padding bytes were not initialized.

    Fix:
      Added memset to zero to the allocated buffer used to read the image.

    Impact:
      None

28. Problem:
      CQ40331 lediag segmentation fault when using -slave option

    Cause:
      The utility used to get NVM configuration value returned a
      NULL pointer. Attempt to access the NULL pointer caused
      segmentation fault.

    Fix:
      Fixed the utility nvm_cfg_get and added proper handling
      incase of return NULL pointer.

    Impact:
      None.

29. Problem:
      CQ44570 Ediag test A30 EMAC Register Test failure on first
      iteration after boot when BC 5.2.4 or above is used.

   Cause:
      The EMAC "status" register SERDES_NXT_PG_CHANGE bit changes
      to 1 during negotiation process after boot.

   Fix:
      Exclude the EMAC "status" register from testing since the
      SERDES_NXT_PG_CHANGE bit might change during negotiation
      process after boot.

   Impact:
      None.

30. Problem:
      CQ43412 Ediag external loopback test fails when LLDP is Enabled

   Cause:
      LLDP packets are received during the test - data integrity
      check of these packets fail, thus test fails.

   Fix:
      Incase of data integrity check failure, do not fail the test.
      Show a warning message and discard the packet.

   Impact:
      None.

31. Problem:
      CQ44554 Ediag error message for upgrade between different sets of
      MBA images should be more informative.

   Cause:
      Incase user attempts to upgrade NVM to a different set of MBA image
      (e.g. from legacy MBA to PCI30_CLP MBA) an error message with request
      to downgrade to version 0.0.0 is shown.

   Fix:
      Show a more informative warning message in this case:
      "This nvm upgrade operation involves removal of MBA <image type>"

   Impact:
      None.

 32. Problem:
       D02 test fails on nictest.

     Cause:
       Phy wasn't deasserted in D02 test.

     Fix:
        Deassert XGXS in D02 test.


Enhancements
------------
1. Request:
      Change the approved optic modules list text file template.

   Change:
      As requested.

   Impact:
      None

2. Request:
      Add debug print in case of fan failure while the diag driver is loaded

   Change:
      As requested.

   Impact:
      None

3. Request:
      Add nvram option 85 that force expansion ROM advertizement even when MBA
      is disabled.

   Change:
      As requested.

   Impact:
      This feature is implemented in bootcode version 5.0.8 or later.

4.  Request:
      Make 8727 over-current behavior code more efficient

    Change:
      As requested

    Impact:
      None

5.  Request:
      When PFC enabled, Pass pause frames towards the NIG.

    Change:
       As requested.

    Impact:
       None.

6.  Request:
      Add mcp debug script (for clp/dcc config).

    Change:
       As requested.

    Impact:
       None.

7.  Request:
      (CQ41744) eDiag to show SFP+ module vendor name and part# in ASCII text

    Change:
       As requested

    Impact:
       None

8.  Request:
      Add new command "phy_dump" to dump XGXS phy bank registers

    Change:
      As requested

    Impact:
      None

9.  Request:
      Add "nvm cfg" and "nvm chk" support for A1100G

    Change:
      As requested

    Impact:
      None

10. Request:
      Add nvm cfg 86 to prevent PCI L1 entry

    Change:
      As requested

    Impact:
      Requires bootcode 5.0.10 or later to take affect

11. Request:
      Add support for MSI-X to Linux eDiag.

    Change:
      As requested.

    Impact:
      None.

12. Request:
      Do DbgMessage() output more informative.

    Change:
      Print BDF instead of pdev pointer value in DbgMessageX().

    Impact:
      None.


13. Request:
      Support new "trafficSpec" command with "gen|update|dump" options.
      For generating a traffic specification packet (L2/L4) and
      ability to update its parameters (rxDev, txDev, numConns etc.).
      Also add ability to dump the traffic specification into screen/array.

    Change:
      As requested.

    Impact:
      None.

14. Request:
      Added for BCM57712, BCM57713 nictest new register test for IGU block (A35)
      and new memory test for IGU block (B28).

    Change:
      As requested.

    Impact:
      None.

15. Request:
      Add an option to force using INT#x.

    Change:
      Added `use_inta' module parameter.

    Impact:
      None.

16. Request:
      Add support for Emulation to Linux eDiag.

    Change:
      Added a new function lm_chip_is_slow() to validate device revision
      before it was moved to D0 state. Canceled Power Management handling
      when device is an emulation or FPGA.

    Impact:
      None.

17. Request:
      Add support for enabling VFs to Linux eDiag.

    Change:
      Add "device vf_en/vf_dis" interfaces.

    Impact:
      None.

18. Request:
      Add support for changing receiver mode to <NONE, UNICAST,
      MULTICAST, ALL_MULTICAST, BROADCAST, ERROR_PACKET or PROMISC>.

    Change:
      Added command option "lmdev set_rx_mode <rx_mode>".

      Where rx_mode values can be <NONE, UNICAST,
      MULTICAST, ALL_MULTICAST, BROADCAST, ERROR_PACKET or PROMISC>.

    Impact:
      None.

19. Request:
      CQ 41431 Add "license display -c" for displaying current
      key in shmem, as in xdiag.

    Change:
      As requested.
      Also added "license chkkey -c" for checking current key
      in shmem, as in xdiag.

    Impact:
      None.

20. Request:
      Add a command that will return the internal memory offsets values.

    Change:
      Added "intmem" command.

    Impact:
      None.

21. Request:
      Add a command that will trigger FLR.

    Change:
      Added "driver flr" command.

    Impact:
      None.

22.  Request:
       CQ41067 Add support for CL73 to CX4 boards

     Change:
       As requested

     Impact:
       None

23.  Request:
       Change idle_chk check on activity counter (AC) values as follow:
       Error incase of AC > 2.
       Error incase of AC is 1 and connection type is ETH.
       Warning incase of AC is 1 and connection type is iSCSI.
       Error incase of AC is 1 and connection type is nither ETH nor iSCSI.


     Change:
       As requested

     Impact:
       None

24.  Request:
       Added for BCM57712, BCM57713 nictest - new register tests (A36, A37)
       for new PGLUE_B, ATC blocks, and new memory tests (B29, B30)
       for new PGLUE_B, ATC blocks.

     Change:
       As requested

     Impact:
       None

25.  Request:
       CQ 40771, CQ 40961 - Add command line option "-fncsi" to program NCSI
       images in manufacture mode.

     Change:
       As requested

     Impact:
       None

26.  Request:
       Add to utility "qstat" the option "-no_pause". This option prints all
       statistics to screen without waiting for user to hit any key to get
       next statistics on screen.

     Change:
       As requested

     Impact:
       None

27. Request:
       Add LLDP nvram configuration to set the interval between transmitting
       LLDP packets and the device type ID. When the interval is set to zero,
       the LLDP feature is disabled.

     Change:
       As requested

     Impact:
       None

28. Request:
       Cleanup nvm cfg:
        - Removal of unsupported management FW from option 30, leaving only
          "default" and "NCSI" (though this option is now meaningless)
        - Removal of unsupported speeds from options 35, 36, 56 and 59
        - Removal of unsupported "auto" detection from options 57 and 60
        - Rename "Switch connected" to "XGXS or 5th lane" in options 57 and 60

     Change:
       As requested

     Impact:
       None

29. Request:
      CQ 43310  Everest: eDIAG should display detailed information of MBA image
      (MBA 3.0, MBA 3.0 with CLP, etc...)

    Change:
       Added to MBA version validation procedure parsing of PCI revision
       and displaying MBA detailed information accordingly.

     Impact:
       None

30. Request:
      CQ 40960  Everest: eDIAG add to "nvm prg" options -skip_sn, -skip_en
      which preserve the serial number and engineering change number.

    Change:
       As requested.

     Impact:
       None

31. Request:
      Everest: eDIAG add to "bar read/write" support for 64-bit (8 bytes)

    Change:
       As requested.
       Format for bar write 64-bit is as follows:
       "bar <bar index> write <addr> <low value> 8 <high value>"

     Impact:
       None

32.  Request:
       CQ 43687 - Add zero backup MAC address if all FF's

     Change:
       As requested

     Impact:
       None

33. Request:
      Enable flow-control capabilities on direct boards when
      flow-control is set to AUTO, and link is up using
      parallel-detect.

   Change:
      As requested

   Impact:
      None

34. Request:
      Add support for extended IGU functionality testing.

    Change:
      Added 'last_intr', 'tmode_simd32', 'tmode_simd64' and 'tmode_mimd'
      opcodes to 'driver' interface.

    Impact:
      None

35. Request:
      CQ 43876 Ediag enhancement request to program the entire NVRAM
      from a "Golden image" (without skipping backup MAC address)

   Change:
      Added command line option "-raw", to be used with "-fnvm".
      Added command option "-raw" to "nvm prg" command.

   Impact:
      None

36. Request:
     CQ 43881 Ediag enhancement request to extend the command line string
     length to more than 128 characters (including spaces).

   Change:
      Added the option to use "ediag @filename.txt", the filename.txt
      includes the extended command line string.

   Impact:
      None

37. Request:
      CQ 44333 Ediag additional option in engineering mode for GPIO strobing

    Change:
       Added to "extlb_test" tests the option "-toggle_gpio <gpio bit no>".
       This option will raise to high the requested GPIO bit for the
       whole test duration and clear it at the end of the test.
       Usage:
       extlb_test -case <case # (1-11)> -subcase <subcase# (A-M)> -toggle_gpio <GPIO bit (0-4)>

    Impact:
       None

38. Request:
      Change Ediag "qstat" output to be similar to Xdiag "qstat" output, for
      the convenience of automated tools which use these outputs.

    Change:
       As requested.

    Impact:
       None

39. Request:
      nvm_chk should return 0 when no miss-matches are found or last ID with
      error otherwise.

    Change:
      As requested.

    Impact:
      None

40. Request:
      Add a new command that creates a configuration file with default board
      configuration

    Change:
      "nvm dump_def_cfg" was added - takes only the board parameter and creates a
      file with the desired configuration

    Impact:
       None

41.  Request:
       CQ44708 Sysop request from Ediag to enable Windows PC connected
       via serial I/F to have full control on tested board.
       Request ability for user to enter MAC addresses from the Windows PC.

    Change:
       Ediag -m option enables user to enter MAC addresses from Windows PC
       connected via serial I/F, tested DOS machine is in redirect mode
       (set diag_com enabled in autoexec.bat).

       Use tcl_io_getch() instead of fgets to enable user to enter characters
       from UART or from PCI depending on mode of operation.

    Impact:
       User can not change the MAC address using BACKSPACE key during typing,
       since tcl_io_getch() does not support special control keys.

42.  Request:
       CQ44708 Cont. Sysop request from Ediag to enable Windows PC connected
       via serial I/F to have full control on tested board.
       Request ability to enter argument test file name from the Windows PC.

    Change:
       Ediag @ without filename, prompts the user to enter argument file name.
       When working in redirect mode (set diag_com enabled in autoexec.bat),
       the user can enter the file name from the Windows PC connected via
       serial to the tested DOS machine.

       Use tcl_io_getch() instead of fgets to enable user to enter characters
       from UART or from PCI depending on mode of operation.

    Impact:
       User can not change the filename using BACKSPACE key during typing,
       since tcl_io_getch() does not support special control keys.


43.  Request:
       CQ41043 Increase the amount of possible NVRAM images above 16.

    Change:
       Added support to extended directory, which hold the information
       of the new image types (above the existing 16 image types already
       supported).
       The information (NVM offset, byte count) of each new image in the
       extended directory is stored as an entry in the extended dir struct.
       The extended dir struct is saved as an EXTENDED_DIR image in NVM.

    Impact:
       Additional NVM image type EXTENDED_DIR is programmed in NVM,
       when a new image type (above the existing 16 types) is programmed.


Version 5.0.6 (June 1, 2009)
=================================

Fixes
-----
1. Problem:
      Allow enabling and disabling the fan failure mechanism for different
      PHY types doesn't function (nvram option 83).

   Cause:
      The option was overridden to always enable fan failure detection.

   Fix:
      Remove the overwriting code.

   Impact:
      None.

2. Problem:
      Module compliant event log and module over-current event logs
      are truncated

   Cause:
      Unable to print event log with variable length

   Fix:
      Use hard coded event logs instead of event logs from nvram file.

   Impact:
      Warning message is not to be used in the modules nvram file - revision 0
      of the module nvram image is no longer supported.

3. Problem:
      NVM dump option "-m_pn" failed

   Cause:
      Parsing the number of modules in MODULES_PN image was incorrect.

   Fix:
       Converts the no_modules from host byte order to network byte order.

   Impact:
      None.

4. Problem:
      Linux eDiag: CQ41552 Not able to make lediag 5.0.5 on redhat 4u8 on IA64
      system.

   Cause:
      Used (volatile void __iomem *) instead of (void __iomem *) as a parameter
      of readl() in ediag_readq().

   Fix:
      Use ediag_readl()/writel() instead of readl()/writel().

   Impact:
      None.

Enhancements
------------
1. Request:
      Linux eDiag: Exit gracefully on DbgBreakX() in kernel.

   Change:
      Send SIGINT to lediag application on DbgBreakX() in kernel.

   Impact:
      None

2. Request:
       CQ39382 RMII External Loopback support in EDIAG

   Change:
      Added test C12 "RMII external loopback test" (disabled by default).
      Test can be run by "nictest -T C12" or by "ump_extlb_test".
      Test is applicable only on BCM57711 and above.

   Impact:
      None

3. Request:
      Change NVM dump -m_pn option for MODULES_PN image to a different
      output file format.

   Change:
      As requested.

   Impact:
      None

4. Request:
      Support optic modules input text file revision 1 (without warning message).

   Change:
      As requested.

   Impact:
      Revision 0 which was supported only by diag v5.0.5 is no longer supported.
      Revision 1 requires bootcode 5.0.7 or later

5. Request:
      Support optic modules text file with or w/o white spaces between fields,
      delimited by comma.

   Change:
      As requested.

   Impact:
      None

6. Request:
      Support BCM8727 PHY without over current detection.

   Change:
      Add a new PHY type: BCM8727_NOC including the required support.

   Impact:
      None

Version 5.0.5 (May 26, 2009)
=================================

Fixes
-----

1. Problem:
      CQ41380 Linux eDiag was crashing with SIGSEG and SLES10.2.

   Cause:
      There was a bug in definition of EMPTY_DEV_ENTRY_IDX: it should have
      been MAX_NUM_DEVICES and not (MAX_NUM_DEVICES + 1).

   Fix:
      Fix the definition of EMPTY_DEV_ENTRY_IDX.

Enhancements
------------
1. Request:
     Allow enabling and disabling the fan failure mechanism for different PHY
     types

   Change:
     Added nvram option 83 to indicate if the fan failure detection should be
     enabled according to the PHY type, disabled or enabled

   Impact:
     None

2. Request:
     (CQ40899) Provide means to create and dump (approved) I/O module list

   Change:
     Add "nvm upgrade -m_pn" and "nvm dump -m_pn" as requested. Enhanced option
     81 to allow more flexibility for unapproved modules behavior

   Impact:
     The new image is enforced according to nvm cfg option 81 value

Version 5.0.4 (May 14, 2009)
=================================

Fixes
-----
1. Problem:
      CQ40194 Lediag ia64 Error messages popped up when ./load.sh -b10eng is
      issued.

   Cause:
      There was a bug in PCI devices scanning code.

   Fix:
      Correct PCI scanning code.

2. Problem:
      CQ40487 On RH4 insmod reported:
      error inserting edrv.ko:-1 unknown symbol in module

   Cause:
      pci_find_next_bus is not exported in older kernels.

   Fix:
      Changed PCI scan code to use pci_find_device/pci_get_device API.

3. Problem:
      CQ37563 Device doesn't link after executing NICTEST.

   Cause:
      MSI/MSI-X configuration was overwritten during A33/A34 tests and
      wasn't restored after them finished.

   Fix:
      Restore MSI/MSI-X configuration after A33/A34 tests.


4. Problem:
      BCM8727 shows link up while RX is disabled

   Cause:
      When module-compliance enforcement is enabled, and non-compliant
      module is detected, then the driver disables the TX-Laser for the phy,
      yet the link keeps showing link up.

   Fix:
      When link is changing, in case the TX-laser is off, indicate that
      the link is down although the phy detects RX link up.

   Impact:
      None

5. Problem:
      CQ41000 Link up event can be missed right after optic module insertion

   Cause:
      At the time that SFP+ module plugged-in was triggered, driver enabled
      the module while ignoring link change.

   Fix:
      Check for link changes during module plugged in/out

   Impact:
      None

6. Problem:
      BCM8727 doesn't link in 10G after changing from 1G

   Cause:
      10G default configuration was overwritten after setting 1G configuration.
      Since the phy is not reset, the configuration for 10G doesn't go back to
      default after link speed change.

   Fix:
      When setting 10G, enforce 10G configuration, and not relay on the default configuration.

   Impact:
      None


Enhancements
------------
1. Request:
      Add linkdump support for 8726/8727/8481

   Change:
      As Requested

   Impact:
      None

1. Request:
      CQ 40765 Need DOS diag to exit with script failure codes when run with -rc for ediag

   Change:
      Added command line option -checkrc as requested

   Impact:
      None

Version 5.0.3 (May 05, 2009)
=================================

Fixes
-----
1. Problem:
      CQ40755 Ediag fails to load on specific system configuration

   Cause:
      On this specific setup there were more than expected MAX_NUM_DEVICES (128)
      pci devices.

   Fix:
      Increased the definition of MAX_NUM_DEVICES from 128 to 256.


2. Problem:
      BCM8481 is not able to link with 10/100 switch

   Cause:
      XGXS was initialized to work in none-SGMII mode

   Fix:
      Set XGXS to work in SGMII mode if link speed is slower the 1G

3. Problem:
      Related to CQ38091 D7 test failure in Silver Surfer board

   Cause:
      Manufacture key is not installed on board, thus test failed
      due to not enough TOE licensed connections.

   Fix:
      Check first number of TOE licensed keys in upgrade key,
      then check manufacture key.

4. Problem:
      XFP adapter shows link up in network properties with no cable

   Cause:
      Link status register was updated long after interrupt was triggered

   Fix:
      Check RX PMD Loss of Sync is clear and RX PMD Sync Acquired to detect link.


Enhancements
------------
1. Request:
      Update nvm cfg/chk menu's

   Change:
      Add D02D3G and update A1113G and A1123G to reflect latest HW settings

   Impact:
      None

2. Request:
      Add initial support for BCM8727

   Change:
      Add support for the new dual-port SFP+ phy

   Impact:
      None


3. Request:
     In BigMac2, when PFC enabled, pass pause frames towards the NIG

   Change:
     Set the appropriate bit in the bigmac control register

   Impact:
     None

4. Request:
     Add to "lmdev" command options "enable_e2_integ" and "disable_e2_integ",
     to be used to set/clear BCM57712, BCM57713 flag e2_integ_testing_enabled
     in lm_device params.

   Change:
     As requested.

   Impact:
     None

5. Request:
     Add additional support for BCM8727

   Change:
     Add support module detection, over-current detection and
     SFP+ EEPROM access

  Impact:
     None


6. Request:
     Add nvm upgrade new command line options "-ib_ipv4" "-ib_ipv6" to support
     ISCSI boot IPv6.

   Change:
     Ported from xdiag.

  Impact:
     None


Version 5.0.2 (April 21, 2009)
=================================

Fixes
-----
1. Problem:
      Wrong nvram settings for A1123G

   Cause:
      Wrong device ID and PCI Gen2 should be enabled

   Fix:
      Update the "nvm cfg" and "nvm chk" accordingly

   Impact:
      None.

2. Problem:
      Bootcode unable to set phy configuration

   Cause:
      When driver is loaded, it sets Serdes to work in CL45 while the bootcode
      is using CL22 for phy access. So when driver is unloaded, bootcode
      unable to access the phy.

   Fix:
      When driver is loaded set Serdes mode to CL22 only when
      1G-switch is set. This shall solve the issue for older
      bootcodes, and will be fixed in newer bootcodes

   Impact:
      None


3. Problem:
      BCM8481 is not able to link up in legacy speeds

   Cause:
      Setting legacy speeds requires additional phy configuration,
      and speed analysis.

   Fix:
      Enable legacy speeds for this phy

   Impact:
      None


4. Problem:
      Failed to upgrade NCSI image version 1.1.0
      Received error message:
      "NCSI common and/or everest_lib is missing. Cannot burn image on Everest NVM"

   Cause:
      NCSI image check includes check of existing everest_lib.
      From NCSI image 1.1.0 and above image includes only common image.

   Fix:
      Removed the check of everest_lib existence.

   Impact:
      None

5. Problem:
      CQ39625 On 57711/57711E, there might be signal integrity issue with PCI Gen 2

   Cause:
      Default PCI SerDes pre-emphasis values are not appropriate for all cases

   Fix:
      Config the PCI SerDes pre-emphasis according to NVRAM configuration parameter

   Impact:
      None

6. Problem:
      CQ40364 - Can't make lediag 5.0.0 on redhat 32-bit.

   Cause:
     Procedures ediag_readq(), ediag_writeq() for accessing quad byte (4 bytes)
     use readq() and writeq() which are not available in 32-bit platforms.

   Fix:
      Replaced ediag_readq(), ediag_writeq() to use readl() and writel()
      which are available in 32-bit platforms.

   Impact:
      None

Enhancements
------------
1. Request:
      Support forcing SF mode without power-cycle

   Change:
      Remove the "power-cycle" warning - note, with bootcode version 5.0.1 or
      below, a power-cycle is still required

   Impact:
      If changed from MF to SF, the higher functions will remain in limbo state
      from the OS preceptively until reboot

2. Request:
      Add support for new BMAC HW block of new chip types

   Change:
      When accessing the new BMAC, use the new registers. No need to initialize
      the PBF HW block credits since flow-control is always enable in that
      block.

   Impact:
      None

3. Request:
      Add BCM8727 PHY to nvm cfg menu

   Change:
      As requested

   Impact:
      None

4. Request:
      Add A1113G to nvm cfg menu

   Change:
      As requested

   Impact:
      None

Version 5.0.1 (April 02, 2009)
=================================

Fixes
-----
1. Problem:
      l4_nic_A0 test on A1233 failure cause of link down

   Cause:
      Missing initialization of "lmdev set_medium EXT_LB" on second device.

   Fix:
      Added the missing initialization.

   Impact:
      None.

2. Problem:
      CQ 39907 Everest: OEM board: ia64: A34 Interrupt Test with MSI Functionality failed.

   Cause:
      Mistake in check of read data from MISC_REGISTERS_AEU_AFTER_INVERT_1_FUNC_0.

   Fix:
      Fixed the mistake in check.

   Impact:
      None.

3. Problem:
      EMAC1 registers test fails on BCM57712.

   Cause:
      EMAC1 block does not exist on device 1 on BCM57712.

   Fix:
      Skip EMAC1 block registers from testing on BCM57712.

   Impact:
      None.

4. Problem:
      Statistics test D5 fails on BCM57712 emulation setup.

   Cause:
      Received un expected statistics of "XoffPauseFramesReceived".

   Fix:
      Accept Xoff/Xon pause frames as warnings on Emulation.

   Impact:
      None.

5. Problem:
      TOE test D7 fails on BCM57712 emulation setup.

   Cause:
      Not enough licensed TOE connections.

   Fix:
      On emulation do not fail the test cause of not enough licensed TOE connections.

   Impact:
      None.

6. Problem:
      Tests C7, C9 Serdes tests fail on BCM57712 emulation setup.

   Cause:
      No Serdes on BCM57712.

   Fix:
      Skip tests C7, C9 on BCM57712, BCM57713.

   Impact:
      None.

7. Problem:
      CQ 40223 iSCSI boot: ediag upgrade '-ib' switch fails to work.
      Failure first introduced in version 5.0.0.

   Cause:
      Nvm upgrade options validity check did not include -ib option,
      it in not included in the image_table options.

   Fix:
      Added to nvm upgrade options validity check comparison to -ib
      option as well.
      Also better handling of switch cases: -ibt, -ibc, -ibpe.

   Impact:
      None.

8. Problem:
      CQ39909 Sysop mode with several slave devices fails
      (e.g. ediag -sysop -dev 1-2 -slave 3-4)

   Cause:
      Parsing the slave devices range was incorrect.
      Only the first slave device was set to host loopback.

   Fix:
      Fixed the parsing of the slave devices range.
      Added setting of all the slave devices to host loopback,
      prior to running "nictest".

   Impact:
      NVM test (C2 in sysop mode, C11 in nictest mode) is excluded from testing
      when -slave option is used.
      Since "nvm prg" can not be done while driver in on.

9. Problem:
      UEFI Diag warning message "Failed to get ConInEx handle".

   Cause:
      Warning is not crucial.

   Fix:
      Remarked the warning.

   Impact:
     None.


Enhancements
------------
1. Request:
      Allow forcing single function mode using SPIO4

   Change:
      Enhanced option 73 in "nvm cfg" to use either fixed value or SPIO4 to
      force single function mode. When using SPIO, high means only SF, 0 is
      according to CLP configuration

   Impact:
      None

2. Request:
      Automatic serial redirect incase DOS environment variable diag_com exists.

   Change:
      Added tclsh.rc file into script wrapper to support automatic serial
      redirect incase DOS environment variable diag_com exists.

   Impact:
      None

3. Request:
      Add nvram support ("nvm cfg" and "nvm chk") for A1123G

   Change:
      As requested

   Impact:
      None

Version 5.0.0 (March 18, 2009)
=================================

Fixes
-----
1. Problem:
      Upgrading MBA image with different vendor/device ID overrides
      EFI signature in MBA header.

   Cause:
      Incase of MBA image with different vendor/device ID upgrade,
      upgrading MBA header re-calculation of checksum overrides EFI signature.

   Fix:
      Do not override EFI signature if exists in MBA header.

   Impact:
      None.

2. Problem:
      ediag phy command doesn't work for Serdes ( 1G switch ) mode

   Cause:
      Registers were read using XGXS phy address instead of Serdes phy addess

   Fix:
      In case the nvram setting is 1G switch, use the Serdes phy address

   Impact:
      None.

3. Problem:
      ediag linkdump command prints unrelated information for direct only boards

   Cause:
      There was no distincation between direct type boards and boards with external
      phy. since boards with external phy have additional info, this unrelated info
      displayed incorrectly on the screen.

   Fix:
      In case of direct board, print only non-external phy information

   Impact:
      None.

4. Problem:
      CQ 39353 ediag missing copyright line in eng mode

   Cause:
      no copyright line in ediag

   Fix:
      Added copyright line for ediag

   Impact:
      None.

5. Problem:
      On some OS received the error below:
      "4DOS/32A run-time(6002): Out of real-mode virtual stacks"

   Cause:
      DOS extender configuration file (da_quiet.d32) supports
      Rmode stacks and Pmode stacks of 8M size.

   Fix:
      Increased Rmode and Pmode stacks configuration to 32M.
      Updated the DOS extender configuration file (da_quiet.d32).

   Impact:
      None.

6. Problem:
      When setting pre-emphasis values for external phys, the XGXS is also set.

   Cause:
      In external-phy boards, when pre-emphasis values were set in the nvram,
      both the external phy and the XGXS pre-emphasis values were set, while the
      values fit the external phy only.

   Fix:
      Set pre-emphasis values in XGXS only for direct type boards.

   Impact:
      None.

7. Problem:
      BCM8726 MDIO access is not locked as it should be.

   Cause:
      MDC/MDIO access to BCM8726 is done via single EMAC, hence all MDC/MDIO access
      to this phy needs to be locked, as in BCM8072 and BCM8073.

   Fix:
      Lock the hardware using MDIO_RESOURCE when accessing the BCM8726 phy via MDIO


8. Problem:
      "gpio read" command reads incorrect pin values

   Cause:
      "gpio read" command changes the MISC GPIO register prior
      to reading, in order to change OE (output-enable) pins.

   Fix:
       No need to change the OE pins.

   Impact:
       None.

9. Problem:
       Device information was not represented as expected in UEFI eDiag.

   Cause:
       PCI info array was not cleared during PCI scan.

   Fix:
       Clear the info array before PCI scan.

   Impact:
       None.

10. Problem:
       There was a memory leak in "hmem inuse" implementation.

   Cause:
       Wrong calculation of the size of the memory needed for report
       string.

   Fix:
       Fixed size calculation.

   Impact:
       None.

11. Problem:
       CQ39568 ediag "nvm crc" command does not show CRC
       of combined MBA/EFI code.

   Cause:
       ediag "nvm crc" did not calculate CRC on images
       larger than 128K.

   Fix:
       ediag "nvm crc" shows CRC on all images.

   Impact:
       None.


12. Problem:
       Nictest D7 TOE test fails on DOS 6.22 cause of failure to
       allocate memory.

   Cause:
       Memory leak in tests C4, C5 cause of un-released memory allocated.
       Not enough free memory in DOS 6.22 for test D7 128 connections.

   Fix:
       Fixed the memory leak in tests C4, C5.
       Main leak was in test C4 cause of missing "upvar" on variables,
       thus test did not release these global variables.
       Reduced the number of tested TOE connections in D7 to 100.

   Impact:
       Nictest can run on DOS 6.22 as well.

13. Problem:
       Conflicts between EFI UNDI driver and UEFI diag.

   Cause:
       EFI UNDI driver can be loaded when UEFI diag bring-up.

   Fix:
       Similar changes as in xdiag resolution to CQ39546.
       Use multiple language strings to locate UEFI UNDI driver image handle
       and unload the UEFI UNDI driver before running ediag.

14. Problem:
       MACs were not configures correctly on big endian platforms.

    Cause:
       Most significant, middle and less significant words were not swapped
       to little endian format before passing them to FW.

    Fix:
       Swap most significant, middle and less significant words to little
       endian format before passing them to FW.

    Impact:
       None.

15. Problem:
       Attempt to nvm read/write from address larger than NVM size causes
       ediag assert.

    Cause:
       No validity check that address is less than nvm size.

    Fix:
       Added validity check at nvm read/write that address is less than nvm size.

    Impact:
       None.


16. Problem:
       New phy version (P14) of the BCM8726 unable to link up

    Cause:
       The new phy version doesn't behave exactly like the its
       previous version (P13), hence requires some adjustments

    Fix:
       1. Microcode download requires write of another register
       2. Read from "Limiting/LRM mode" register before setting
          Limiting mode

    Impact:
       No impact on P13


17. Problem:
       Ediag failure on test D8 "external PHY loopback test" on SFX7101

     Cause:
       External phy wasn't initialize in case of external phy loopback.

     Fix:
       Initialize external phy in case of phy loopback test.

     Impact:
       None.


18.  Problem:
        CQ39552 Link LED is turned OFF while running external loopback test

     Cause:
        When using phy loopback, the link doesn't actually comes up since there's
        no link partner.

     Fix:
        Set link led up on loopback test

     Impact:
       None.


19.  Problem:
        BCM8481 is not able to link up in 10/100/1000 Mbps

     Cause:
        No 10/100/1000 link signal is connected from the BCM8481 to the Everest.

     Fix:
        BCM8481 will connect LED4 signal to the Everest LASI signal. The Everest
        will use the NIG latching mechanism which allows to catch a link event
        even if the link toggles fast.

     Impact:
       None.

20.  Problem:
        UEFI x64 diag bring up takes several minutes.

     Cause:
        Tcl_SourceRCFile of reg_def.tcl takes several minutes.

     Fix:
        Removed reg_def.tcl and its usage in group C tests, since it is redundant.
        Used instead the parsed the register definition file (.RDF).
        Changed all group C tests and tests A33,A3 (int_msi, int_msix) tests
        register's access calls.

     Impact:
       None.


21.  Problem:
        CQ 39732: Add PCI segment support to UEFI ediag

     Cause:
        Segment number found was not used.

     Fix:
        Store the Segment number found by efiioProtocol->GetLocation in
        the pci_info struct, domain field.

     Impact:
       None.

22.  Problem:
        Lediag crash on MF mode upon "driver load" on device > 1.

     Cause:
        There was no support to SB > 0.

     Fix:
        Added support to SB > 0.

     Impact:
       None.




Enhancements:
-------------
1.  Request:
       Support new NCSI image starting from version 1.0.7.

    Change:
       Change as requested

    Impact:
       None


2.  Request:
       CQ39184 BCM957711T1101G_FULL NVRAM configuration changes

    Change:
       Change as requested

    Impact:
       None

3.  Request:
       NVM configuration change of BAR sizes for different boards

    Change:
       Change as requested

    Impact:
       None

4.  Request:
       Verify external phy image before ROM upgrade.

    Change:
       New headers will be added to the images of external phys to
       be upgraded. Currently this list includes BCM8073, BCM8726
       and SFX7101. The headers will be checked against fixed magic
       number and specific phy type.

    Impact:
       From now on, external phy images MUST include image header.

5.  Request:
       Remove "mii" commands.
       Use "phy" and "extphy" TCL commands instead to access PHY registers.

    Change:
       As requested, removed "mii" commands from diag.
       Added help and usage on "phy" and "extphy" TCL commands instead.

    Impact:
       From now on use "phy" and "extphy" TCL commands to access PHY registers
       instead of "mii" commands.

6.  Request:
       Change NVM configuration for BARs sizes (Bar2:Bar1) to 8M:8M
       for all board types.

    Change:
       As requested.

    Impact:
       None.


7.  Request:
       Support BCM57712, BCM57712E, BCM57713, BCM57713E new devices IDs.

    Change:
       As requested.

    Impact:
       None.


8.  Request:
       Support BCM57712/E, BCM57713/E "nictest" run all tests on both ports
       without excluding any test.

    Change:
       As requested.

    Impact:
       None.

9.  Request:
       Added NVM access test to "nictest" group C tests.

    Change:
       As requested.  Added test C11 NVM access test.
       For BCM57710, BCM57711/E Test C11 is performed only on the primary device.

    Impact:
       None.


Version 4.8.6 (January xx, 2009)
=================================

Fixes
-----
1. Problem:
      Using dbgTools script command "setp RH_FCOE_STORMS -net h4 -port0"
      caused debug assert in ediag/winediag.

    Cause:
      Memory corruption in "reg write" implementation due to attempt to
      read 3'rd input argument objv[2] when only 2 input arguments.

    Fix:
      Check objv[2] only if there are 3 input arguments.

    Impact:
      None.

2. Problem:
      ediag command line option -nvmchk fails.

   Cause:
      command line option -nvmchk which runs "nvm crc" on block images
      failed on images which do not exist.

   Fix:
      Do not return error upon "nvm crc" on block images which do not exist.

   Impact:
      None.

3. Problem:
      CQ39156 Ediag crashed when typing in wrong license Key.

   Cause:
      Attempt to store larger license secret file caused memory corruption
      due to memory copy of bigger buffer than defined.

   Fix:
      Check license secret file size is not bigger than expected and
      defined buffer size.

   Impact:
      None.

4. Problem:
      CQ39142 Ediag 'nvm upgrade' upgrades mba image without checking image version

   Cause:
      Bug introduced in version 4.8.5.
      There was a mistake in MBA version parsing due to latest enhancement request
      to support MBA multiple image versions display in "nvm dir".

   Fix:
      Fixed the mistake in MBA version parsing.

   Impact:
      None.

5. Problem:
      Linux eDiag didn't wait enough time for MCP to wake up.

   Cause:
      Timeout values were in ms, while they should be in us.

   Fix:
      Fixed timeout constants.

   Impact:
      None.

6. Problem:
      1G switch configuration doesn't work.

   Cause:
      Support for Serdes 5th lane(RJ45) was not maintained since it is aimed
      for the mission boards alone, and wasn't required till now.

   Fix:
      In order for control the Serdes over Clause45 (and not Clause22),
      it requires first one time register setting in Clause22.

7. Problem:
      Invalid presentation of BCM8726 fw version.

   Cause:
      The register that holds the fw version is used for other functionality as well,
      and it is run over after firmware is loaded.

   Fix:
      Save the firmware version of all external phys in shared
      memory, after firmware is loaded.

8. Problem:
      BCM8726 may start tx laser before module detection occurs.

   Cause:
      Module detection used to be done during link update, which probably would be after tx was enabled.

   Fix:
      From now on use interrupt driven event using GPIO3, to detect module
      plugged in/out, and execute module detection then.

9. Problem:
      Linux eDiag: mmap failed on *-xen kernels.

   Cause:
      edrv used io_remap_X API for remapping RAM memory.

   Fix:
      io_remap_X should not be used for mapping RAM memory.
      remap_X API should be used instead.


Enhancements:
-------------
1.  Request:
       "pci setdut" command without parameters should display the current
       bus, device, function.

    Change:
       Change as requested

    Impact:
       None

2.  Request:
       Added to "nvm upgrade -mba" additional options:
       -d bypass device check
       -p, -n <value> set vendor data struct field forced_pfn value

    Change:
       Change as requested

    Impact:
       None

3.  Request:
       Verify external PHY image before ROM upgrade.
       (Related to CQ 39013)

    Change:
       New external PHY images are appended with new headers.
       Currently support for new image headers for BCM8073, BCM8726 and SFX7101.
       The image header is checked against fixed magic number and specific PHY type.

    Impact:
       From now on, external phy images MUST include image header.

4. Request:
       CQ39048 - Add ability to change 8706 XAUI RX Equalizer using nvram configuration.

   Change:
      When nvram config "Override pre-emphasis configuration" (75) is set, use the 3LSB bits of
      RX_equalizer nvram configuration (48) to set the BCM8706 XAUI RX Equalizer registers for each
      lane.

    Impact:
      None.

5. Request:
      BCM8726 should be able to link up at 1G.

   Change:
      Add support for 1G for BCM8726.

    Impact:
      When requested speed it 1G force, it will try to link in 1G force. When the speed
      requested is autoneg, and the speed mask capabilities contain 1G, it will try to autoneg in 1G as
      well as in 10G.

6. Request:
      Add big-endian support to Linux eDiag.

   Change:
      As requested. TOE is currently not supported.

    Impact:
      None.

Version 4.8.5 (December 31, 2008)
=================================

Fixes
-----

 1. Problem:
       CQ38985 Port swap is not working for BCM8726.

    Cause:
       BCM8726 is driven by MDC/MDIO through single EMAC.
       In case of port swap, the EMAC access was left with EMAC0.

    Fix:
       In case port-swap is enabled in the NIG, access MDC/MDIO via EMAC1

    Impact:
       None.

 2. Problem:
       BCM8726 wasn't actually reset when driver was unloaded

    Cause:
       This phy hardware reset affects both ports and thus wasn't used.


    Fix:
       When link needs to be reset, reboot the micro-controller of the BCM8726.

    Impact:
       None.

 3. Problem:
       BCM8726 wasn't really reset during init.

    Cause:
       This phy is connected using static port-swap, hence the reset should have been
       triggered through the opposite port from the spec.

    Fix:
       Set gpio1 during common init from port1 instead of port0.

    Impact:
       None.

4.  Problem:
       Statistics test (D5) used In/Out Octets counters workaround.

    Cause:
       Firmware octets counters did not include 4 CRC bytes.

    Fix:
       Firmware fix in 4.8.8 for octets counters.
       Statistics test workaround was removed, octets counters
       are compared to expected value.

    Impact:
       None.

5.  Problem:
       Statistics test (D5) was excluded from testing for BCM57711E since
       octets counters differ from expected.

    Cause:
       Firmware octets counters were wrong for 57711E.

    Fix:
       Firmware fix in 4.8.8 for the octets counters.
       Statistics test (D5) is included in testing for BCM57711E as well.

    Impact:
       None.

6.  Problem:
       Failed to work in serial mode (-no_pci) with COM different than COM1.

    Cause:
       Missing setting for variable ::sys(DUART_PORT) according to COM.

    Fix:
       Added the missing setting.

    Impact:
       None.

7.  Problem:
       Linux eDiag was clearing CLP configuration on exit.

    Cause:
       Linux eDiag reset MCP and didn't restore original CLP configuration.

    Fix:
       Original CLP configuration is restored after MCP reset.

    Impact:
       None.


Enhancements:
-------------
1.  Request:
       Support MBA multiple image versions display in "nvm dir".
       Similar to xdiag CQ#38852 resolution.

    Change:
       Change as requested

    Impact:
       None


Version 4.8.4 (December 18, 2008)
=================================

Fixes
-----
1. Problem:
      "assert" command always failed in Linux eDiag.

   Cause:
      Letters for storm identification were described in lower case,
      while implementation assumed them in upper case.

   Fix:
      Implementation was fixed to treat storm description letters in
      case insensitive way.

   Impact:
      None.

2. Problem:
      Linux diag - Loading the driver on only the second function and then
      exiting caused kernel panic.

   Cause:
      Chip and MCP were reset for each function of the device(asic).

   Fix:
      Reset the chip and MCP only for the last unloaded function of the
      specific device(asic).

   Impact:
      None.

3. Problem:
      ediag -no_pci command "set_duart open 1 115200" fails with debug break.

   Cause:
      Introduced in version 4.8.3 since winediag support for baud rate 115200.
      The DUART_READ_MAX_RETRY_NUM was reduced from 10 to 5 tries
      to reduce setting time.

   Fix:
      For reading 8 characters try DUART_READ_MAX_RETRY_NUM * 2 (10 retries).
      For reading one char at a time try DUART_READ_MAX_RETRY_NUM (5 retries)
      for each character.

   Impact:
      None.

4. Problem:
      CQ38944: D3 test with host loopback on E1.5 SFP failing in lediag.

   Cause:
      Rx buffers internal pkt_desc_t frag list was initialized to virtual
      address instead of physical, while Tx flow assumed it to be a
      virtual address.

   Fix:
      Rx buffers' internal pkt_desc_t frag list is initialized to virtual
      address instead of physical.

   Impact:
      None.

5. Problem:
      CQ38859 (Linux eDiag): Nictest is making system hang up with
      LEDIAG 4.8.1/4.8.2 on SUSE 11.

   Cause:
      There was some kernel dependent code in precompiled module.

   Fix:
      Moved kernel dependent code to ediag_compat.c/h.

   Impact:
      None.

6. Problem:
      "nvm upgrade" command with wrong file name caused system to hang when
      bnx2x driver was loaded (engineering mode).

   Cause:
      "nvm upgrade" reset MCP even if upgrade had failed.

   Fix:
      "nvm upgrade" flow was set to reset MCP only if upgrade was successful.

   Impact:
      None.

7. Problem:
      ediag option '-mac' fails to program primary MAC address

   Cause:
      Caused by change for option '-m'.
      Handling mac address string which includes also \n caused
      '-mac' option failure.

   Fix:
      Fixed '-m' option by copying the mac address string without the
      last char \n.

   Impact:
      None.

8. Problem:
      CQ38918 ediag display speed in PCIEx16 have to be consistent with xdiag

   Cause:
      Speed in PCIX16 was displayed as 5, should be displayed as 5.0.

   Fix:
      Fixed as requested.

   Impact:
      None.



Version 4.8.3 (December 08, 2008)
=================================
Fixes
-----
1. Problem:
      CQ 38804 - "dev" command is failing cause of ambiguous commands:
      "device" and "device_test".

   Cause:
      Introduced in version 4.8.2 cause of unit testing script which
      includes command "device_test".
      Thus "dev" shortcut has ambiguous commands "device" and "device_test".

   Fix:
      Renamed alias names in unit testing script to "test_<command>" name
      to avoid ambiguous commands when using shortcuts.

   Impact:
      None.

2. Problem:
      CQ 38885 - upon MBA upgrade on 2-port device, option 28 expansion ROM size
      does not change as expected on device 2.

   Cause:
      nvm cfg option 28 expansion ROM size was changed only for the current device.

   Fix:
      Added to nvm upgrade for MBA image, upgrade to nvm cfg expansion ROM size
      for the other function as well.

   Impact:
      None.

3. Problem:
      BCM57710 ASIC revision displayed as A0 instead of A1.

   Cause:
      Bug introduced in version 4.8.2 due to changes in that area.

   Fix:
      Fixed the bug: A1 is displayed as A1.

   Impact:
      None.

4. Problem:
      "grcDump" command on BCM57710 fails with hw attention.

   Cause:
      Bug introduced in version 4.8.2 due to change in read_regs_all utility -
      reduced exception list of registers to be excluded from reading.

   Fix:
      Added to the reduced exception list DBG registers and NIG_REGISTERS_INGRESS_BMAC1_MEM.

   Impact:
      None.

Enhancements:
-------------
1.  Request:
       Improve -no_pci "set_duart" utility printouts.
       Change -no_pci "set_duart" default baud rate to 115200.

    Change:
       Change as requested

    Impact:
       None

2.  Request:
       Add nvram configuration to control SFP+ optical module (MSA)
       vendor verification

    Change:
       nvram configuration option #81: "Optic Module Vendor Enforcement"
       was added

    Impact:
       The new nvram bit is currently used by the drivers only with the
       BCM8726 PHY

Version 4.8.2 (December 1, 2008)
=================================
Fixes
-----
1. Problem:
      CQ 38501 - Ediag tests on selected device 2 (-c 2) should skip test C06
      since not applicable on non-primary device.

   Cause:
      The C6 test was not skipped in the code for selected device.
      (options -c or -dev).

   Fix:
      Skip test C6 on non-primary device also in code for selected device.
      (options -c or -dev).
      Skip also tests C7,C9 incase SERDES not connected in code for selected device.
      Skip also test D8 incase no external PHY in code for selected device.

   Impact:
      None.

2. Problem:
      System hung during D3 test on certain Itanium system running UEFI ediag.

   Cause:
      Accessed dword on non-dword aligned address.

   Fix:
      Avoid the dword access on non-dword aligned address.

   Impact:
      None

3. Problem:
      There was a SIGSEG when trying to upgrade external PHY FW.

   Cause:
      There was missing external PHY FW managing command (ext_phy_fw).

   Fix:
      Added the missing command: ext_phy_fw.

   Impact:
      None.

4. Problem:
      CQ 38729 - lediag 4.8.1: segmentation fault  on 32-bit SuSE 10SP1 while upgrading firmware.

   Cause:
      There was a memory leak in "nvm upgrade" flow.

   Fix:
      Fixed the cause of memory leak.

   Impact:
      None.

Enhancements:
-------------
1.  Request:
       Allow sourcing a new nvm_meta.tcl that will remove an existing
       value

    Change:
       Change as requested

    Impact:
       None

2.  Request:
       Add to idle_chk TCL script mode which dumps the value of the registers
       in the idle_chk excel file, without performing idle checks.

    Change:
       Added to idle_chk -dumpMode option.

    Impact:
       None

3.  Request:
       CQ 37828 - Modify the "nvm cfg -dump" command to output both TEXT
       and COMMANDS into one file and alias this command as dump_all_cfg

    Change:
       As requested. Note that the new file will contain all devices
       in the same order as in the generating PC and therefore should be
       used only on identical platforms

    Impact:
       None

4.  Request:
       Added MCP reset after reseting chip with including NIG.

    Change:
       As requested.

    Impact:
       None

5.  Request:
       Add additional PCIE and HC registers to "grcdump" list of registers to be dumped

    Change:
       Change as requested and in addition mem_parse.pl and .fmt files were adjusted for parsing the results.

    Impact:
       Some Information may not be available due to the exception list of registers (e.g. HC_REGISTERS_MAIN_MEMORY).

6.  Request:
       Dump device registers by grcdump and read_regs_all utilities except registers in the exception read list.

    Change:
       Replaced the exception list of registers which are not read (same exception list for registers testing)
       with a reduced exception read list.
       Another change - option -did <device ID> is required if running from UART (NO_PCI) mode and RDF file
       for the target device was not already parsed.

    Impact:
       More registers are read using grcdump or read_regs_all utilities.

7.  Request:
       Block "nvm write" if bnx2x is loaded.

    Change:
       As requested.

    Impact:
       None.

8.  Request:
       CQ38606 - Update Ediag to Support a Manually Specified MAC Address Stride
                 (MAC address incremental value between consecutive licenses)

    Change:
       Added support to "license storekey" command for new multi-key file header version which support
       Stride parameter.

    Impact:
       None.


Version 4.8.1 (November 13, 2008)
===================================

Fixes
-----
1. Problem:
      CQ 38353 - Ediag 4.8.0 does not allow you to change 'nvm cfg' options

   Cause:
      Use of un-initialized variable, inserted in version 4.8.0.

   Fix:
      Use of the correct variable.

   Impact:
      None.

2. Problem:
      Linux diag - IA64 and UEFI diag: Test A34 MSI test failure.

   Cause:
      Initialization procedure, introduced in version 4.8.0, did not reset NIG and EMAC blocks.

   Fix:
      Added to initialization procedure reset to NIG and EMAC blocks.

   Impact:
     None.

3. Problem:
      CQ 37563  Linux diag: on some systems bnx2x cannot be loaded in MSI-X after nictest

   Cause:
      On some systems the host-coalescing (HC) memory is not being set for MSI-X after nictest

   Fix:
      Remove the host-coalescing memory test from the nictest by default (B9).
      This test can still be preformed using the T flag.

   Impact:
      None.

4.  Problem:
       CQ 38303 (Linux ediag): Nictest D3:external loopback test is failing on LEDIAG 4.6.18
       with segmentation fault.

    Cause:
       There were a few host loopback related callbacks missing in Linux eDiag.

    Fix:
       Added the missing callbacks.

    Impact:
       None.

5.  Problem:
       "nvm prg" command does not allow programming image with size different than nvm size.

    Cause:
       Bug introduced in version 4.8.0.
       Check of image size against nvm size was changed incorrectly.

    Fix:
       Show error message if image size is larger than nvm size, but accepts larger image size
       (additional 8 bytes for each 256 bytes) required by specific NVM type.

    Impact:
       None.

6.  Problem:
       There was an unaligned access in "l2pkt split" flow.

    Cause:
       There was #pragma push(1) on pkt_desc struct.

    Fix:
       Removed the pragma as long as it's not needed anymore (since we moved to native binary).

    Impact:
       None.

7. Problem:
      (SFP+) Sometimes D3 test fails on ediag.

   Cause:
      It turns out that mdio register access is sometimes broken since PHY is not hard reset.

   Fix:
      Pull GPIO1 low for 1 ms after power-on. Note that the hard reset is a shared resource on the PHY.

Enhancements:
-------------
1.  Request:
       eDiag: Add to idle_chk CFC activity counter check the following:
       Warning incase AC equals 1 and connection type is iSCSI (type 3)
       Error incase AC equals 1 and connection type is neither 0 nor 3.

    Change:
       Change as requested.

    Impact:
       None.

2.  Request:
       (part of Cont35465 ) Update latest SPI ROM procedure provided by the PHY team to solve potential problems with write-protect

    Change:
       Change as requested.

    Impact:
       None.

Version 4.8.0 (October 6, 2008)
===================================
Fixes
-----
1. Problem:
      CQ 37998 - ediag does not support PXE or BOFM with multiple Everest chips.

   Cause:
      Attempt to change expansion rom size upon MBA image upgrade on second Everest chip
      was performed incorrectly on first Everest chip.

   Fix:
      Removed the loop on 5771x functions, instead change of expansion rom size is
      done on the current device.

   Impact:
      None.

2. Problem:
      CQ 37162 Do not display "Device x is not configured" warning, using BCM57711 in SF mode.

   Cause:
      A warning message was printed is device is not configured.

   Fix:
      Changed the warning message to debug print level INFO.

   Impact:
      None.

3. Problem:
      CQ 37807 - VPD-R length as calculated is 1 byte too long.

   Cause:
      Missing reduce by 1 of the length calculated for TAG VPD-R string (10h), thus
      VPD-R length was 1 byte too long.
      Another mismatch was in "RV" VPD keyword length, there was redundant reduce by 1
      of length, thus "RV" VPD length was 1 byte too short.

   Fix:
      Added the missing reduce by 1 of length calculated for TAG VPD-R string.
      Removed the redundant reduce by 1 of length calculated for "RV" VPD keyword.

   Impact:
      None.

4.  Problem:
       Driver asserts when trying 2-way close (simultaneous FIN send)

    Cause:
       2-way close was not supported by Ediag.

    Fix:
       Added support for 2-way close.
       Add event indicator in that case.

    Impact:
       None.

5.  Problem:
       CQ38316 - Ediag default set of testing fails A33 MSIX test when including D3 external loopback test
       (ediag -T D3) on BCM957710A1111G.

    Cause:
       Initialization procedure at the beginning of MSIX test was missing 'mcp reset' which is
       required for setting the port swap configuration.

    Fix:
       Call the initialization procedure used also for Group C tests, that includes 'mcp reset' which is
       required for setting the port swap configuration.

    Impact:
       None.

6.  Problem:
       CQ37795  Image "nvm dump" on one system with NVM from one vendor unable to be used on another system
       with NVM of another vendor.

    Cause:
       The image size of "nvm dump" of one vendor is larger due to appended 8 bytes for each 256 bytes.

    Fix:
       Image size check accepts larger image size (additional 8 bytes for each 256 bytes).
       Before nvm programming strip the 8 extra bytes.

    Impact:
       None.

Enhancements:
-------------
1.  Request:
       Linux eDiag: Remove the dependency from the compatibility libraries.

    Change:
       As requested.

    Impact:
       None

2.  Request:
       Linux eDiag: Add support for IA64.

    Change:
       As requested.

    Impact:
       None

Version 4.6.18 (October 28, 2008)
===================================
Fixes
-----
1.  Problem:
           CQ 38067 - eDiag shows invalid license keys when flex address is enabled.
           CQ 38227 - eDiag reports invalid license keys on BCM957711 A1233G devices 4-8.

        Cause:
           License key check implementation used environment variable ENV_MAC_ADDR which was taken
           from shmem, instead of using MAC address stored in NVM.

        Fix:
           License key check implementation now reads directly MAC address from NVM.

        Impact:
           License init and storekey functions were changed also to use MAC address read from NVM,
           instead of environment variable.

2.      Problem:
       CQ 38003 - eDiag engineering mode "dev" command displays Config section "MF" incorrectly.

        Cause:
           Implementation of enhancement request "nvm cfg" options 29,79,80 to be shared instead of per-port.

        Fix:
           Enabling and disabling MFW (nvm configuraton option 29) was changed back to per port (not shared)
           This is required due to power consumption - if only one port is needed for management,
           the second port should not establish link.

        Impact:
           None.

3. Problem:
       CQ 37563 - (Linux eDiag) Device does not link after ctrl-c break of nictest in group A .

    Cause:
       When memory test is interrupted, chip may be in undefined state.

    Fix:
       Reset chip (including NIG), when driver is unloaded from SETUP state.

    Impact:
       none.

4.  Problem:
       UEFI eDiag:D7 test failed intermittently.

    Cause:
       Status value was updated in wrong sequence because of asynchronous timer event.

    Fix:
       Handled the lock/unlock properly.

    Impact:
       none.

5.  Problem:
       CQ 38026 - (Linux eDiag) lediag fails with errors "Device 1 is not configured"
       and "application-specific initialization failed ".

    Cause:
       Bar mapping failed on 32-bit systems.

    Fix:
       Limited number of supporterd L4 connections to 512 per device.

    Impact:
       none.

6.  Problem:
       CQ 38091 - eDiag D7 test failure on some specific board

    Cause:
       Test fails when licnese key does not exist on board.

    Fix:
       Added check prior to testing if the number of TOE connections allowed
       is less than required by the test, then a proper error message is shown.
       After installing license key on board test passes.

    Impact:
       none.

7.  Problem:
       Restoring original register values to wrong register offsets.

    Cause:
       The register offsets were incremented by 1 inside for loop.

    Fix:
       Increment register offsets by 4 inside for loop.

    Impact:
       None.


Version 4.6.17 (October 20, 2008)
===================================
Fixes
-----

1.      Problem:
           CQ 37563 - Device does not link after ctrl-c break of nictest in group A (Linux eDiag).

        Cause:
           When memory test is interrupted, chip may be in undefined state.

        Fix:
           Reset chip (including NIG), when driver is unloaded from SETUP state.

        Impact:
           none.

2.      Problem:
           Linux eDiag:System crashed when Linux eDiag exited if bnx2x driver had been loaded.

        Cause:
           Linux Diag: Chip was reset even if bnx2x driver had been loaded.

        Fix:
           Don't reset the chip is Linux eDiag runs in compatibility mode.

        Impact:
           None.


Enhancements:
-------------
1.  Request:
       Linux eDiag: Add support for latest kernels.

    Change:
       Added rdtsc macro definitions if hasn't been already defined.

    Impact:
       None

2.  Request:
       Linux eDiag: Add visualization of the current nictest status.

    Change:
       Added "yield" command to Linux eDiag. Visualization is implemented
       using this command.

    Impact:
       None

3. Request:
       Linux eDiag: Add call trace to DbgBreakX.

    Change:
       Added call trace to DbgBreakX implementation.

    Impact:
       None


Version 4.6.15 (October  15, 2008)
===================================
Fixes
-----
1.      Problem:
           CQ 37353 - Ediag and Uediag Fails (tests D2, D5) on A1023 board
           CQ 37555 - ediag-nictest failed D5 (A1023 on blade)

        Cause:
           Delay before reading driver statistics was not enough on specific setups

        Fix:
           Increased the delay in test D5 script by 1 second before reading the driver statistics

        Impact:
           Test D5 statistics test duration increased by 1 second.

2.      Problem:
           Test D3 on BCM957710A1111G failed the MAC CRC check.

        Cause:
           Setting "strip CRC" mode was erased by CLC code.

        Fix:
           Added 100msec delay before setting "strip CRC" mode.

        Impact:
           None.

3.      Problem:
           Tests C,D failed on RH4 (CQs 37283 and 37169).

        Cause:
           Physical pages were not locked in the memory.

        Fix:
           Added explicit pinning of physical pages allocated via ioctl_alloc_phys callback in the RAM.

        Impact:
           None.

Version 4.6.13 (October  08, 2008)
===================================
Fixes
-----
1.      Problem:
           CQ37484 - data from arrays in the nvm cfg were swapped for the driver.

        Cause:
           Arrays were defined in little endianity, although arrays should be defined in big endianity.

        Fix:
           Fixed the diag to treat arrays in big endianity.

        Impact:
           All options in the nvm cfg with arrays (only 47 and 48).


2.      Problem:
           NVM configuration option 42 "XGXS external PHY address" for BCM957710A1111G board with external PHY type BCM8726.
       is swapped.

        Cause:
           This board uses port swapping.

        Fix:
           Fixed the NVM configuration option 42 of BCM957710A1111G.

        Impact:
           None.

3.      Problem:
           ediag -slave option for SYSOP mode (-sysop) fails "nictest" on BCM957710A1021G board.

        Cause:
           Group C tests reset MCP prior to testing, which causes assert if driver is allready loaded, as in case device is in hlb_on mode.

        Fix:
           Setting of slave device to host loopback mode is done at the begining of the external loopback test,
           instead of the begining of all group tests.

        Impact:
           None.

4. Problem:
          Idle_chk utility aborts incase inside utility disable_timer fails.

        Cause:
          Use of "error" command inside disable_timer utility aborts testing.

        Fix:
          Replaced use of "error" command with "puts" for debug print only in case of disable_timer failure.

        Impact:
           None.

5. Problem:
          CQ37751 - ediag fails idmatch for programming

        Cause:
          Implementation of -idmatch option by check_vid_did() function checked only the VID, DID and SVID fields.

        Fix:
          Added to implementation of -idmatch option, check_vid_did() function, check of SVID field also.

        Impact:
           None.
6. Problem:
          UEFI ediag crashed on IA64 platform.

        Cause:
          UEFI Ediag crashed because of address alignment,calling 32-bit read while the address
          is only 16-bit aligned.

        Fix:
          Fixed the alignment when reading 32-bit.

        Impact:
           None.

Enhancements:
-------------
1.  Request:
       Restart MCP before exiting xDiag both as a result of interrupt signal (Ctl-C)
       and due to Tcl command (e.g. "exit").

    Change:
       Added a call for "mcp run" command from Ctl-C handler and from Tcl_Exit handler.

    Impact:
       None

2. Request:
       Add support to serial port baud rate 115200 in '-no_pci' mode.
       Usage: set_duart open 1 115200

    Change:
       Set DBU registers to required setting for baud rate 115200,
       using serial port at default baud rate.
       Do not wait for echo when attemp to write to these DBU registers.

    Impact:
       None

3. Request:
       Change "nvm cfg" options 29,79,80 to be shared instead of per-port (requested in CQ37068 non-verify notes)

    Change:
       Changed "nvm cfg" options 29,79,80 to be shared instead of per-port using nvm cfg build tool.

    Impact:
       None

4.   Request: Add Ctl-C handler for Linux Diag.

     Change:  As Requested.

     Impact:  None




Version 4.6.12 (September  25, 2008)
===================================
Fixes
-----
1.  Problem:
       CQ37250 Should prevent mba loads into IPMI/UMP.

    Cause:
       MBA image does not include 'append' header, thus correct image
       type was not checked upon attemp to upgrade -ipmi/-ump with MBA
       image.

    Fix:
       Added check incase of single image (no "append" header), if
       everest device and option is other than -mba do not accept this
       image.

    Impact:
       None.

2.  Problem:
       CQ36430 Intermitted external loopback test failure in BCM957710A1021G board.

    Cause:
       External loopback test fails due to immediate link retraining.

    Change:
       In case transfer of packets failure due to link down, or change in link counter which indicates link went down and up during the test,
       Unload the driver then re-run test on the last 100 sent packets.
       Re-run of test includes reloading the driver and waiting for link to be up again prior to re-transferring last 100 packets.
       There are 3 attempts to re-run the test prior to declaring a test failure.

     Impact:
       None.

Enhancements:
-------------
1.  Request:
       CQ37068 Enhancement Request: Everest: eDiag - add "NCSI Package
       ID assignment method" option

    Change:
       Added new NVM cfg options 79) and 80) "NCSI Package ID assignment
       method" and "NCSI Package ID"

    Impact:
       None

2.  Request:
       CQ37223 Remove the NVRAM option that would allow to enable GEN2
       on 57710

    Change:
       Enhanced the "nvm cfg" so lines can now be excluded according to
       the chip ID and disabling line 33 (enabling Gen2) on 57710

    Impact:
       None

Version 4.6.11 (September 08, 2008)
===================================

Fixes
-----

1.  Problem:
       Dual SFP+ PHY name is 8726 and not 8276 as appear in nvm cfg option 41

    Cause:
       The PHY name had a typo

    Fix:
       Fix the PHY name to 8726 in the nvm cfg (option 41)

    Impact:  None


2.  Problem:
       CQ37105 - BCM57710/11 VPD-R checksum implementation is incorrect.

    Cause:
       Checksum calculation did not start at the beginning of VPD-R (offset 0).

    Change:
       Changed checksum calculation start at the beginning of VPD-R (offset 0)

    Impact:
       None.

3.  Problem:
       CQ36965 - Error message when programming NCSI firmware.

    Cause:
       NCSI image combines BCM57710 and BCM5709 images.
       The error is shown due to BCM5709 LIB image which is not intended for 57710 chip.

    Change:
       Show warning instead of error incase of a combined image which includes image not intended for 57710.
       An image not intended for 57710 will still be skipped from programming.

    Impact:
       None.

4.  Problem:
       SW short regression F18 ring test failure.

    Cause:
       FW change, expected gap between producer index and consumer index when ring is full was changed.

    Change:
       Changed the expected gap between producer index and consumer index when ring is full.

    Impact:
       None.

5.  Problem:
       (CQ36996) ediag reports errors when run for second time.

    Cause:
        Nictest starts with MCP reset, so second time Ediag boots it does not see the non-configured devices.

    Change:
        Ediag ignores all non-configured devices.

    Impact:
        None.

6.  Problem:
       (CQ36649) Segmentation fault message during iscsi_cfg/cprg image upgrade.

    Cause:
        A buffer is allocated for the loaded image, and freed after the upgrade process ends.
        However, during the upgrade process the buffer pointer is modified, resulting in a segmentation fault when freeing the modified pointer.

    Change:
        Store another copy of the allocated buffer pointer and use it for freeing the buffer.

    Impact:
        None.

Enhancements:
-------------
1.  Request:
       CQ35274 - Enhancement request, remove NVM cfg option "Board Type"

    Change:
       NVM cfg option 10) board type was removed from NVM cfg menu.
       Environment variable $::current(BOARD) was removed, also removed references to this environment variable in some TCL scripts.
       Use of board type in fan failure feature was also removed, used instead the external PHY type.

    Impact:
       None.

Version 4.6.9 (August 21, 2008)
===============================

Fixes
-----

1.   Problem:
        EDiag is failing C1.

     Cause:
        Newest boot code versions didn't block BRB traffic so
        the C1 test failed due to traffic at the background.

     Fix:
        Set relevant registers values to 0 at the beginning of the test.

     Impact:
        None.



Version 4.6.8 (August 18, 2008)
===============================

Fixes
-----

1.  Problem: (CQ36703) EDiag upgrades iSCSI configuration program without checking version.

    Cause:   Version check for I_B_CPRG image type was incorrect.

    Fix:     Fixed version check for image type I_B_CPRG.

    Impact:  None.


2.  Problem: When upgrading 8073 SPI ROM PHY to version 0103 the link will not come up.

    Cause:   Write to an obsolete register caused the link not to come up.

    Fix:     Remove the unnecessary write.

    Impact:  None


3.  Problem: XAUI link on port0 goes down and then up, when the link on port1 is changed.

    Cause:   When master port (port1) is down, Due to PLL issues speed will change from 10G to 1G.
             It will cause XAUI clock to both ports down and then up again.

    Fix:     Set bit in the BCM8073 that enables the fix.

    Impact:  None.


4.  Problem: (CQ36772) KR with 8073 PHY sometimes does not establish link.

    Cause:   A missing delay between initializing the PHY SPI ROM and inserting the PHY back to low power mode.

    Fix:     Add delay after loading the SPI PHY ROM and before entering low power mode.

    Impact:  None.


5.  Problem: Memory leak in D5 statistics test.

    Cause:   Allocated memory was not freed.

    Fix:     Free the allocated memory when test finished.

    Imapct:  None.


6.  Problem: L4 short_regress fail on A1233G board.

    Cause:   Wrong loopback mode used.

    Change:  Init to external loopback mode.

    Impact:  None.


Enhancements:
-------------

1.   Request: Change -cfgchk option to use "nvm chk" instead of tcl_cfgchk functions.
                          Removed XXXcfg.txt files not required any more.

     Change:  As Requested.

     Impact:  None.


Version 4.6.6 (August 4, 2008)
==============================

Fixes:
------

1.   Problem:
         (CQ36431) "driver load" fails after first nvm programming on empty A1233G board

     Cause:
          MCP reset call after "nvm prg" did not reset MCP incase of blank board.

     Fix:
         Fixed reset_mcp procedure.


     Impact:
        None.

2.   Problem:
         (CQ36523) Need a method to read/write OEM string of the vpd

     Cause:
         No support for read/write VPD header "Vendor Specific Data (V0)" field.

     Fix:
         Added "nvm cfg" option 77 "VPD Vendor Specific Data" to relevant .tcl script.

     Impact:
        None.

3.   Problem:
         (CQ36197) Ediag Generates Exception Error for Deprecated "nvm cfg 34=2" Command

     Cause:
         Long command (more than 80 characters) is the cause for ediag crash.

     Fix:
         Increased the static 80-char array to 1024 chars, Incase of commands larger than 1024,
         show an appropriate error message and show prompt again to avoid ediag crash.

     Impact:
        None.

4.   Problem:
         (CQ36650) Ediag - request that we add an autom feature to allow skipping
         4 MAC addresses from port 1 to port 2 NVRAM MAC's

     Cause:
         No support for "autom" feature to allow MAC addresses gap between port 1 and port 2.
         MAC addresses were sequential only.

     Fix:
         Added command line option "-num_mac <number>", which determines the number of
         MAC addresses per port (For SYSOP of A1233G).
         This new command line works with "-autom" option for automatic increment of MAC addresses.
         The "-num_mac" option currently supports values 2 (defualt) or 4.
         For A1233G board use value 4, to set 4 MAC addresses GAP between device 1 and
         device 2 MAC addresses.

     Impact:
        For A1233G SYSOP mode of production, use "-num_mac 4" in addition to the command line
        in production batch file.

5.   Problem:
        Be compliant with xdiag resolution of Cont00036335 - MBA: Add a 'none' option to the
        MBA Boot protocol

     Cause:
        No support to 'none' option to MBA Boot protocol option in NVM configuration.

     Fix:
        Added to nvm configuration support, "NONE" option (=7) for MBA protocol
        (use "nvm cfg 23=7" command).
        Updated "device" information for MBA protocol "NONE", will be shown as "Mn" in
        device information.

     Impact:
        None.


Enhancements:
-------------

1.   Request:
        Add -clr flag to parse_rdf to enable clearing "regs" arrays incase we need to parse
        different RDF files (for E1, E1.5).

     Change:
        As Requested.

      Impact:
        None.

2.   Request:
        Report unsupported request and registers containing error packet header as warning
        (not as error), both for E1 and for E1.5.

     Change:
        As Requested.

      Impact:
        None.


Version 4.6.4 (July 17, 2008)
==============================

Fixes:
------

   1.  Problem:
          CQ# 36083 A1030G inside blade failed nictest, cam test C2 fails when WOL is enabled.

       Cause:
          MCP was not halted during the test.

       Change:
          Halt mcp prior to test. Use common utility to prepare for each one of group C tests.
          This utility includes driver load and unload (required to set chip registers upon bring up),
          then mcp halt.

       Impact:
          Group C tests will take longer, since now each test begins with driver load and unload.
          This impact will be mostly notices in emulation or FPGA setups.

   2.  Problem: (CQ#35157) (CQ#35905)
           Nictest D7 test failed on function greater than 2.

       Cause:
          The Min/Max bandwith configuration done only in case function 0 and function 1
          Initialized.

       Change:
          The Min/Max bandwith configuration moved to port initialization phase.

       Impact:
          None.

   3.  Problem: (CQ#35942)
          Got erorr message when tried t0 program the iscsi boot in ediag.

      Cause:
         Previous Fix to CQ#35628 broke chip validation code of "nvm upgrade".

      Change:
         Changed chip validation according to last fix.

      Impact:
         None.



Enhancements:
-------------

  1.  Request:
         CQ35465 - Add support for BCM8073-A1 firmware upgrade.

      Change:
         As Requested

      Impact:
         ext_phy_fw upgrade command is now supported for BCM8073-A1 boards.

   2. Request:
        Sample link status only once to reduce sleeps in critical context.

     Change:
        As Requested.

      Impact:
        None.

   3. Request:
        CQ34147 - Display test is in progress while test is running.

      Change:
        As Requested

      Impact:
         None

   4. Request:
         Add support to new command line option "-autom".
         The new "-autom" comamnd line option works with "-m" option and enables entering
         the first MAC address, all other MAC address will be generated automatically
         (in incremental order).

      Change:
         As Requested

      Impact:
         None


Version 4.6.2 (May 29, 2008)
=================================

Fixes:
------
   1. Problem: Can't enter ediag due to abnormal termination

      Cause: When Bar size wasn't configured correctly the function
      that validates that we have enough bar size to support at least
      the ethernet connections failed and asserted.

      Change: Function no longer asserts - instead it returns an error code

      Impact: it will be possible to enter ediag even with wrong configuration of bar-size.

   2. Problem:(CQ#34211)
               Warning message when programming L2 and iSCSI images.

      Cause:   The function that validates chip version returned warning message
               and didn't perform the image burning.

      Change:  After warning message the Image will be burned to the NVM.

      Impact:  Backward support to "nvm upgrade" of appended images that do not include
               chip number (e.g. L2 and ISCSI).

   3. Problem BCM57711E nvm cfg didn't work on function greater than 1.

      Cause:   The code limit the function number.

      Change:  Fix the code to allow function number greater than 1.

      Impact:  none.


Enhancements:
-------------

   1.  Request: Add BCM57711E Support for WOL ACPI pattern.

       Change:  As Requested.

       Impact:  None.

   2.  Request: Add BCM57711E Support for WOL magic packet.

       Change:  As Requested.

       Impact:  None.

   3.  Request: Add BCM57711E Support for function disabled.

       Change:  As Requested.

       Impact:  Disable function will appear with link down.

   4.  Request: Support 2.5G speed for BCM8073.

       Change:  As Requested.

       Impact:  None.

   5.  Request: Support sysop mode on A1030G

       Change:  As Requested.

       Impact:  None.




Version 4.6.1 (May 18, 2008)
=================================

Fixes:
------
   1.  Problem: (CQ#34211)
                Warning message when programming MBA, L2 and iSCSI images

       Cause: The "nvm upgrade" implementation expects an 'append' header for MBA image.

       Change: Accept MBA image without 'append' header

       Impact: None.

   2.  Problem: (CQ#35327)
                A1030G board fails ediag nictest on device 3

       Cause: Wrong function parameter was assign to regtest and memory TCL scripts in this case.

       Change: Fixed the function parameter in both regtest and memory TCL scripts.

       Impact: None.

   3.  Problem: CL22 mii read|write commands are not working when access XGXS PHYs.

       Cause:   NIG access changed to CL45 and didn't allow CL22 mii access.

       Change:  Change the NIG configuration to CL22 when using CL22 mii access commands.

       Impact:  None.

Enhancements:
-------------

   1.  Request: BCM57711E Support MIN/MAX bandwidth control.

       Change:  As Requested.

       Impact:  None.

   2.  Request: Support BCM8073 external phy.

       Change:  As Requested.

       Impact:  None.




Version 4.6.0 (May 4, 2008)
=================================

Fixes:
------
   1.  Problem: (CQ#34107)
                Some Uediag commands requiled a use of "password".

       Cause:  There were a few command line options which required password entry in Uediag.

       Change: Disable commands line options (-fnvm, -idmatch, -pwd) in uediag.

       Impact: These options won't be available Uediag.

   2.  Problem: (Without CQ)
                Machine hangs when runing -sysop mode on board A1033G.

       Cause:  Wrong handling in case boot code is not present.

       Change: Zero parameters when boot code is not present.

       Impact: None.

   3.  Problem: Possible bug on DMAE reads (write from the chip to the host)

       Cause:   HW limitation that was not obeyed

       Change:  DMAE reads (write from the chip to the host) is
                limited to 128 DWORDS

       Impact:  None


Enhancements:
-------------

   1.  Request: Add nvm configuration parameter to force single function mode
                on BCM57711E.

       Change:  As Requested.

       Impact:  nvm cfg 73=1 will force single function mode support.

   2.  Request: Support approximate match for multicast MACs

       Change:  As Requested.

       Impact:  None.

   3.  Request: Support statistics on 57711

       Change:  As Requested.

       Impact:  None





Version 4.4.9 (April 22, 2008)
=================================

Fixes:
------
    1.  Problem: Autoneg flow-control is broken

        Cause:   Broken in last drops - wrong check of the autoneg result

        Change:  Fixed the autoneg result check

        Impact:  None


Enhancements:
-------------

    1.  Request: New command "ext_phy_fw" for External PHY firmware operations
                 (read version and upgrade firmware)

        Change:  Support added

        Impact:  New command "ext_phy_fw" for External PHY firmware operations
                 (read version and upgrade firmware).
                 Usage:    ext_phy_fw upgrade <fileName>
                 Usage:    ext_phy_fw version
                 New command line option "-fextphy" for upgrading external PHY
                 firmware.
                 (*) This command replaces the "sfx7101" command  and "-fsfx"
                 command line option.


Version 4.4.8 (April 14, 2008)
=================================

Fixes:
------

    1.  Problem: (CQ#34451)
                 BCM57710 Nictest fail on tests C08 & C10 A1020

        Cause:   During the test port swap configuration was lost after
                 chip reset.

        Change:  Add mcp reset after the chip reset to enable configuration.

        Impace: None expected.


    2.  Problem: DMAE timeout problem on 57711

        Cause:   DMAE needs to be configured differently

        Change:  Reduce the MPS of the DMAE client

        Impact:  None


Version 4.4.7 (April 9, 2008)
=================================

Fixes:
------

    1.  Problem: (CQ#34434)
                 Everest NVRAM corrupted after nvm upgrade without -F
                 command to downgrade an image version.

        Cause:   On some cases NVRAM was changed although image
                 version validation failed.

        Change:  NVRAM is now change only aftre image validation check.

        Impace:  None.

    2.  Problem: (CQ#34566)
                 QM block register values was wrong after Ediag debug UART
                 connection.

        Cause:   When using ediag testing ZLR machine left wrong values in the QM.

        Change:  When connection UART no ZLR machine check should made.

        Impace:  NONE.

    3.  Problem: Nictest group A tests duration was too long.

        Cause:   Tests flows wasn't optimal.

        Change:  Optimize nictest group A flows.

        Impace:  Nictest group A tests now run much faster.



Enhancements:
-------------

    1.  Request: (CQ33897)
                 Support BCM8073 PHY

        Change:  As Requested

        Impact:  This is still an initial HW revision of the BCM8073 PHY
                 so changes might be needed as the PHY HW or FW evolve

    2.  Request: (CQ33845)
                 Turn off link LED when link is not active

        Change:  As Requested

        Impact:  None.

    3.  Request: Add nvm cfg defaults for all board types.

        Change:  Support added "nvm cfg board_type" will now configure
                 per board type defualts values.

        Impact:  None.




Version 4.4.6 (March 27, 2008)
=================================

Enhancements:
-------------


   1.  Request: Add support for BCM57711 LINK and statistic management.

       Change:  Support added.

       Impact:  None.

   2   Add support for BCM57711 nictest.

       Change:  Support added.

       Impact:  None.


Version 4.4.5 (March 20, 2008)
=================================

Fixes:
------

   1. Problem: (CQ#43424)
                Cannot link SFP module at 1G with Dell PowerConnect 6224

      Cause:   The Dell switch supports only autoneg and not forced
               1G

      Change:  Changed the 1G implementation to autoneg with only 1G
               advertisement

      Impact:  When choosing 1G speed, the speed is achieved via
               autoneg and not forced


Enhancements:
-------------

   1.  Request: Add support for BCM57711 boot code.

       Change:  Support added.

       Impact:  None.




Version 4.4.4 (February 28, 2008)
=================================

Fixes:
------

   1. Problem: Asserts with NC-SI images upgrade.

      Cause:   Ediag asserts because of miss interpretation of chip
               version in the image header.

      Change:  Bitwise check of the image chip type.
               Change assert to meassge.

      Impact:  None.

   2. Problem: (CQ #32640) nictest with Zero Length Read

      Cause:  WB registers access fails on ZLR machines

      Change: Added detection of ZLR machine, by detecting many WB registers access failures.
              In case of ZLR machines exclude group C from testing and excluded WB regsiters
              and additional registers from testing (regtest.tcl, memory.tcl).

      Impact: On ZLR machines, a warning message will appear, and nictest will run a reduced set of tests.

Enhancements:
-------------

   1. Request: Add support for BCM57711/BCM57711E.

      Change:  Initial support added.

      Impact:  None.

   2. Request: Add support for forced 1Gbps for BCM8706

      Change:  Support added.

      Impact:  None.


Version 4.2.2 (February 14, 2008)
===============================

       Fixes:
       ------

       1. Problem: (CQ#33556)  Flow Control feature does not work on A1022G Board.

          Cause:  Advertisment and resoluton of pause auto negotiation weren't implemented.

          Change: Advertisment and resoluton of pause auto negotiation flows are now implemented

          Impact: None.


       2. Problem: (CQ #33793) Ediag on A1022G Board -cfgchk returns unknown value for external phy FW version.

          Cause:  The EMAC block was on reset while mdio transaction was applied.

          Change: The EMAC block was taken out of reset when gathering external phy FW version.

          Impact: None.


Version 4.2.1 (February 10, 2008)
=================================

       Fixes:
       ------

       1. Problem: (CQ #32610) Ediag assert when using 'nvm prg' and ID mismatch exists.

          Cause:  Procedure used assert incase of ID mismatch.

          Change: Procedure now print error and exit with TCL_ERROR, incase of ID mismatch,

          instead of asserting.

          Impact:  Incase of ID mismatch (VID, DID, SVID) and error message will appear (instead of an Assert).


       2. Problem: (CQ #33278) Ediag does not have support for "device <devnum> hlb_on" command in engineering mode.

          Cause:  Command option "device <devnum> hlb_on" was not implemented. Used TCL script utility set_host_lb instead.

          Change: Added support to command option "device <devnum> hlb_on" and "device <devnum> hlb_off".

          Impact:  User can use "device <Devnum> hlb_on" instead of the TCL utility set_host_lb.


       3. Problem: GRC timeout occured in when the netwok was unpluged when running nictest.

          Cause: When loading the driver the code access a register when the HW block was disabled.

          Change: The HW block state is checked prior to the register access.

          Impact: None.




Version 4.2.0 (February 4, 2008)
================================

      Fixes:
      ------

       1. Problem: Ediag fails External loopback D3 when two A1021G boards are connected back to back CQ#33376

          Cause:  Some of the iterrations failed cause not all transmitted packets were received.

          Change: Additional delay was add to allow valid link up.

          Impact:  Test D3 external loopback test and test D8 external PHY loopback duration is increased by 7 seconds.


       2. Problem: Ediag displayed old and unused options in the "license display" command.

          Cause:

          Change: Only relevant options are now displayed.

          Impact: None.



      Enhancements:
      -------------

       1. Request: Added support to -cfgchk of new board type A1022G and new PHY type SFG10.

          Fixed check of BC version.

          Change: Support added.

          Impact: None.


       2. Request: Add support to read extrenal phy fw version number and to upgrade external phy firmware

          On A1022G boards.

          Change: New command line option was added.

          Impact: None.


       3. Request: New 'shared memory' layout for T4.0E/T4.2 that will CQ33571  be compatible

          with T4.4 new features

          Change:  As requested

          Impact: Loading the driver requires bootcode 4.2.0 or later.


       4. Request: Add ability to detect A0 device and prevent incorrect bootcode from being used. CQ #33263

          Change: Additional check was added to ediag incase of bootcode version larger than 4.2.0 and

          chip revision A0, return failure and avoid nvm programming.

          Impact:  Bootcode versions 4.2.0 and above will not be programmed on boards with chip revision A0.


       5. Request: Add sysop options support.

          Change: Add support for isolation board and shorter nictest for sysop mode

          Impact: Easier way to manufacture BCM57710 borads.




Version 4.1.0 (January 2, 2008)
===============================

      Fixes:
      ------

       1. Problem: ediag does not apply command line operations to all devices by default. (CQ #32760)

          Cause: The command lines worked only on the first device.

          Change: Added support in command line parsing file that all command line options

          are done by default on devices (if no device was selected by -dev or -c).

          If devices were selected by -dev or -c option, NVM configuration will be changed only on the those devices.

          Impact:  User can change NVM configuration on multiple boards on one machine with one command line.


       2. Problem: Command line function -fnvm does not work with multiple NICs installed. (CQ #32709)

          Cause: The command lines worked only on the first device.

          Change: Added support in command line parsing file that all command line options

          are done by default on all primary devices (if no device was selected by -dev or -c).

          This file checks is device is primary on board and if so programs the NVM.

          If devices were selected by -dev or -c option, NVM will be programmed only on those devices.

          Impact:  User can program the NVM on multiple boards on one machine with one command line.


       3. Problem: Ediag doesn't return Error levels (CQ #32978)

          Cause:  Was not supported before.

          Change: Added errcode.h file with additional definitions of error codes for BCM57710.

          These definitions are backward compatible with xdiag error codes.

          Added support so that "nictest" tests will return a different

          error code for each test failure.

          Added support so that failure in parsing ediag parameters

          will return a different error code for each failure.

          Impact:  user's can use now DOS "errorlevl" command to check ediag return error code.


       4. Problem: BSOD on T1002 boards.

          Cause: A new code was added that manipulate GPIO 1 for external phy reset. On T1002 board

          this GPIO control the PERST_L_BYPASS.

          Change: Do not manipulate GPIO 1 on T1002 boards

          Impact: None.



       Enhancements:
       -------------

       1. Request: Add workaround for full Tetris buffer bug.

          Change:  The workaround was added

          Impact:  None.


       2. Request: Add external phy loopback test to nictest.

          Change:  Add new loopback mode and add test D8 to the nictest.

          Impact:  nictest now run one more test in group D.


       3. Request: Request: Add fan failure detection and external PHY power down for the A1022G.

          Change:  The now detect fan failure (indicated by SPIO5) on the A1022G,

          the driver will shutdown the PHY (reset and low power mode, using GPIO1+2) and log a message in the windows eventlog.

          Impact:  When fan failure occur the link will go down until full power cycle will apply.




Version 4.0.20 (December 17, 2007)
==================================

       Enhancements:
       -------------

       1. Request: Add support for the SFG10 PHY

          Change:  The support was added

          Impact:  None


       2. Request: Add support for the BCM8072 PHY

          Change:  The support was added. The code is still not 100% functional

          Impact:  None


       3. Request: Change the MDC/MDIO CL45 scheme

          Change:  The functions are more generic:

          - Supports different MDC/MDIO controller

          - Reduce the clock to 2.5MHz

          - Less PIO writes (writing all the required information at

           one attempt)

          Impact:  All external PHY access are using a slower (standard)

          MDC/MDIO clock



          4. Request: Hard reset external PHYs

          Change:  The external PHYs are now reset via GPIO. Before working with

          an external PHY, a reset pulse of 1ms is generated, and when

          the driver is down, the external PHY is kept in reset

          Impact:  Link partner should always see link down when the link is down



Version 4.0.19 (December 9, 2007)
=================================

      Fixes:
      ------

       1. Problem: Ediag assert when loading and unloading the driver when using the EMAC.

          Cause:  When the driver was unloaded the boot code wasn't notify that the link went down.

          And continue pooling the MAC.

          Change: Link down routine is now being called as part of the driver unload flow.

          Impact: None.

       2. Problem: Ediag does not allow "-nvm dir -delete" of BC1. (CQ #32763)

          Cause: The image deletion has a different flow for BC1, in this flow deletion was incorrect.

          Change: Fixed image deletion routine incase of BC1. and also reset magic number field to invalid,

                  otherwise MCP considers the BC to be valid and locks the NVM from writing.

          Impact:  None.


       3. Problem: Improper message is shown when failure updating firmware from cmd line. (CQ #32764)

          Cause: The nvm_upgrade() procedure had the same error message incase of failure for all image types.

          Change: Fixed nvm_upgrade() so that a different error message is displayed for each image type.

          Impact:  None.


       4. Problem: Ediag licensing store function is inconsistent with the remove function. (CQ #32823)

                   On a dual port BCM57710, installing a manufacture or upgrade license to port 1 shows the

                   license is installed on both ports. When removing a license, it is only removed from the current port.

          Cause: The "license storekey" implementation was to store key on all devices and "license rmkey"

                 implementation was to remove the license of the current device.

          Change: Change the implementation of "license storeky". It now stores the license only on the current device,

                  therefore consistent with the function of the "license rmkey".

          Impact: The "-mkey" and "-ukey" command line options were changed to support license storekey on

                  all devices, since now "license storekey" implementation is for current device only.

       5. Problem: Ediag can only install manuf/upg licenses on first NIC. (CQ #32827, CQ #32835)

          Cause: The "license storekey" implementation was to store key on all devices and it assumed that

                 the MAC addresses are sequential.

          Change: Change the implementation of "license storeky". It now stores the license only on the current device,

                  therefore does not assume sequential MAC addresses.

          Impact: The "-mkey" and "-ukey" command line options were changed to support license storekey on all devices,

                  since now "license storekey" implementation is for current device only.

       6. Problem: First NIC's D3 Loopback test results are mirrored on subsequent devices.(CQ #32510)

                   In a system with multiple 57710 NICs, the D3 loopback test run on any NIC is actually redirected

                   and run on the corresponding function on the first NIC.

          Cause: The port number parameter was not delivered correctly to the nictest procedure.

                 Also the L2LB.TCL script did not set the correct device requested for testing.

          Change: Change in L2LB.TCL script loopback_main proc to use "device" command on the requested port to check.

                  Deliver the correct port_n to the nictest proc.

          Impact: NONE.

      7. Problem: On some system we got an assert when using the BCM57710 DMA engine with large transaction length.

         Cause: The DMAE maximum transaction length was too large and caused HW attention.

         Change: Limit the DMAE max transaction length.

         Impact: None.

      8. Problem: Ediag asserted when negative address was apply to nvm read/write/show commands.

         Cause: The nvm commands address parameter was not validated for negative values

         Change: The nvm commands address parameter is now check for negative value.

                 appropriate message will appear if wrong values are apply

         Impact: None.

       Enhancements:
       -------------

       1. Request: Add functionality for BRCM8072A1 (KR) external phy that support speeds 1G, 10G and AN.

       Change: BRCM8072A1 external chip initialization and manipulation code was added.

               All external phys are now being reset using GPIO on initilize link and driver unload.

       Impact: New KR board type are being supported.


Version 4.0.18 (November 15, 2007)
==================================

      Fixes:
       ------
       1. Problem: (CQ#31822), The Ediag command nvm fill accepted negative values for several parameters

          Cause:   Command parameter wasn't validated properly.

          Fix:     Command parameter is now validated apropiate message will diaplay to the user in case of wrong values.

          Impact:  None.


       2. Problem: (CQ#31439), Wrong version of the ISCSI_CPRG image is shown after "nvm dir"command.

          Cause:   The version wasn't read correctly from the NVRAM

          Fix:     The veraion value is now read and shown correctly.

          Impact:  None.


       3. Problem: (CQ#32181) On heavy traffic scenarios, the machine halted due to PCI problem.

          Cause:   A HW change in A1 boards requires some registers that controls the PCI credit to be changed as well

          Change:  Updating the PXP credit registers.

          Impact:  None.



       Enhancements:
       -------------

       1. Request: Add to the "nvm prg" the following command options: -force_mac, force_lic, skip_lic, skip_config.

          Change:  As requested.

          Impact:  None.

       2. Request: Add to the "nvm prg" the following command options: -force_ibcfg.

          Change:  As requested.

          Impact:  None.

       3. Request: Changes with statistics requirements due to performance enhancement and preparation for next

                    features.

          Change:  Removed statistics histogram, Comply with new statistic structure.

          Impact:  The displayed statistics format was changed.

       4. Request  Remove FW interrupts that are not needed

          Change:  FW no longer interrupts the driver for reading a new slow-path

                   element (it updates driver only when completing processing it)

          Impact:  None.

       5. Request  Support MTU size of 9600 bytes.

          Change:  Updtae the appropriate flows and update HW confgiuration.

          Impact:  None.

       6. Request: Block RX Pause if Auto-pause was selected and the MTU > 4500

                   to prevent performance retrogression when using PAUSE with big packets.

          Change:  The auto-pause resolution will be only TX pause if the MTU

                   is larger than 4500. Force pause mode will be obeyed as requested.

          Impact:  Jumbo frames with auto-pause will achieve higher throughput



Version 4.0.17 (October 29, 2007)
================================


       Enhancements:
       -------------

       1. Added support to command line options "-mkey" "-ukey" "-chkkey" which enables to store license
          manufacture/upgrade and check the license keys.

       2. Added support for license key and key for each port (and not per baord)

       3. After using "nvm cfg/prg/upgrade" device information is now immediatly updated. CQ#31268




Version 4.0.16 (October 11, 2007)
================================

       ****** Before installing this version one MUST upgrade the MCP boot code version to 4.0.9 or later ****

       Fixes:
       ------
       1. Problem: CQ#29429, CQ31452 "nvm upgrade -ipbe" cause exception

       Fix:
          Fix was in dg_image_version_validation(), format of I_B_CPRG version is different than ISCSI_B

       2. Problem: CQ#31454

       Fix:
          Added check that <byte_cnt> field in "nvm fill" command does not exceed NVM size


       Enhancements:
       -------------

       1. MCP Statistics (UMP)

       2. Added support to -cfgchk of new board type T1003



Version 4.0.14 (September 17, 2007)
================================

       Fixes:
       ------
       1. Problem: "lost interrupt" CQ#30719, CQ#31102, CQ#31119, CQ#31150, CQ#31196, CQ#31228
          BSOD while Running various stress tests

       Cause:
          HW issue in PCIE core caused a lost of an interrupt.

       Fix:
          HW issue will be fixed for A1
          Currently added a recovery process in the VBD in case an interrupt is lost.


       2. Problem: CQ#29861, CQ#30193
          BSOD while Running offloadstress

       Cause:
          QM was not initialized properly by the VBD

       Fix:
          Fixed init code in VBD


       3. Problem: CQ#31144
          load/unload being enabled twice while passing traffic to another port

       Cause:
          improper synchronization between ports in VBD

       Fix:
          Fixed synchronization in VBD


       4. Fixed CQ#30540


       Enhancements:
       -------------

       1. Improved TOE performance on setups with 8 CPUs.


Version 4.0.13 (August 29, 2007)
================================

       Fixes:
       ------
       1. Problem: CQ#31182
          BSOD while Running sockdie maxtput.
          Got an attention saying that the cdu-validation failed.

       Cause:
          VBD nullified the TOE context too early
          (before CFC delete ramrod was completed)

       Fix:
          VBD should not nullify the TOE context before CFC ramrod completion


Version 4.0.12 (August 23, 2007)
=============================

        New features:
        -------------

        1. Added New dos extender to Ediag. dos32a.exe Version 7.2 support memory allocation up to 2G.

        2. Fixed Statistic issues.

Version 4.0.11 (August 13, 2007)
=============================

        New features:
        -------------

        1. Support for User eDiag uediag.exe.

        2. TCL scripts integrated in the ediag executable.

        3. New command line option -fibc, -fibc2, -fibp, -pwd, -sysop -pwd.

        4. New commands in ediag "hex16", "hex32", "value" and "ioport".


Version 4.0.9 (July 26, 2007)
=============================

        New features:
        -------------

        1. Updated Ediag code.


Version 4.0.8 (July 25, 2007)
=============================

        New features:
        -------------

        1.Added support for the following command line options -idmatch, -arg, -pnchk.



Version 4.0.5 (July 10, 2007)
=============================

        New features:
        -------------

        1. Changed "nictest" grouping tests to run with internal loopbacks.

        2. Added new flag '-F' for version validation when using nvm upgrade,
           if updating to an older version.

        3. Correct display of the iSCSI boot image.


Version 4.0.4 (June 29, 2007)
=============================

        Fixes:

        1. Problem:
                Upgrade MBA on the production board wasn't possible.

           Cause:
                The Ediag has tried to update MBA information on cfg table
                for both ports, although the production board has one port.

           Fix:
                A single relevant entry in cfg table for the producation board.



Version 4.0.2 (June 15, 2007)
=============================

        New features:
        -------------

        1. Add support for the following command line option: -fl2b.

        2. Added viewing field of "port_swap_enable" and "switch_connect_conf" for
           "-cfgchk" command line option.

        3. Removed RDMA MAC support from "-fmac" and "-m" command line options.


Version 0.30.2 (June 4, 2007)
=============================

        New features:
        -------------

        1. Added support for the following command line options: wol, mfw, mba, mbap, mbav,
           mbavval, fipmi, fump, fib, fmba, m.




Version 0.29.2 (May 21, 2007)
=============================

        New features:
        -------------

        1. Added support for the following command line options: cfgchk,fmac and iscsimac.




Version 0.28.1 (May 7, 2007)
=============================

        New features:
        -------------

        1. Eidag will automatically enter manufacturing mode and run the nictest.tcl.

        2. In order to enter engineering mode run EDIAG -b10eng.

        3. Added command line functionality to EDIAG, run EDIAG -help in order to
           see supported features.

        4. A.11 test has been removed from the nictest.tcl script.



Version 0.27.1 (Apr 23, 2007)
=============================

        New features:
        -------------

        1. The Binary is compiled with a newer compiler version of WATCOM 1.6
